Controlling permissible actions a computing device can perform on a data resource based on a use policy evaluating an authorized context of the device

ABSTRACT

Disclosed is a method, a device, and/or a system of controlling permissible actions a computing device can perform on a data resource based on a use policy evaluating an authorized context of the device. In one embodiment, a request is received from a device to use a protected resource stored in a non-hierarchical data structure. A use policy defining an authorized context for which the device can use the protected resource based on contextual value(s) is extracted from a data node. A use transaction is initiated that gathers the contextual values to determine whether the use request satisfies the authorized context. A set of use terms is generated and returned to the device. The protected resource is then streamed to the device, where the device includes a process to enforce ephemerality of the protected resource by maintaining the protected resource in association with the set of use terms.

CLAIMS OF PRIORITY AND CROSS REFERENCES TO RELATED APPLICATIONS

This patent application is a continuation of and claims priority from,and hereby incorporates by reference: U.S. utility patent applicationSer. No. 15/230,424, titled ‘AUTHORIZATION OF ACCESS TO A DATA RESOURCEIN ADDITION TO SPECIFIC ACTIONS TO BE PERFORMED ON THE DATA RESOURCEBASED ON AN AUTHORIZED CONTEXT ENFORCED BY A USE POLICY’, filed Aug. 7,2016, which (1) claims priority from, and hereby incorporates byreference U.S. provisional patent application No. 62/203688, titled‘AUTHORIZATION OF ACCESS TO A DATA RESOURCE IN ADDITION TO SPECIFICACTIONS TO BE PERFORMED ON THE DATA RESOURCE BASED ON AN AUTHORIZEDCONTEXT ENFORCED BY A USE POLICY’, filed Aug. 11, 2015; and (2) is acontinuation-in-part, claims priority from, and hereby incorporates byreference: U.S. utility patent application Ser. No. 14/754,514, titled‘SEMANTIC DATA STRUCTURE AND METHOD’ filed on Jun. 29, 2015, whichclaims priority to U.S. Provisional patent application No. 62/019363,titled ‘DATABASE SECURITY AND ACCESS CONTROL THROUGH A SEMANTIC DATAMODEL’ filed on Jun. 30, 2014.

FIELD OF TECHNOLOGY

This disclosure relates generally to data processing devices and, moreparticularly, to a method, a device, and/or a system of permissibleactions a computing device can perform on a data resource based on a usepolicy evaluating an authorized context of the device.

BACKGROUND

A datastore may be a repository for storing, managing, and distributingelectronic data, and may store any of the data resources produced and/orutilized by an individual and/or an organization. Data resources mayinclude files, documents, media (such as music and video), records,sensor data, and/or user profiles, or portions thereof. Data of thedatastore may be stored in a database (e.g., a database managementsystem, like MongoDB®, Riak®) and/or a file system (such as ahierarchical file system (HFS), network file system (NFS)). The data isstored within the datastore according to one or more data structuresthat define the physical arrangement of the data in a physical memory ofone or more computers (e.g., servers) that are used to implement thedatastore.

The datastore may include data resources that are proprietary,confidential, and/or private. For example, such data resources mayinclude financial information, private communications, electronicmedical records, or valuable trade secrets. A data resource that isprotected by a security system may be referred to as a protectedresource. The security system may require a user to be authenticatedbefore the user can access the datastore and/or may require the user tobe authorized before the user can utilize one or more of the protectedresources of the datastore (e.g., use the protected resource on a deviceand/or manage a protected resource on a server). Specifically, anauthentication process may be used to verify that the user is who theypurport to be (e.g., validate the user's identity), while theauthorization process may be used by the security system to ensure thatthe user is privileged to access a protected resource (e.g., download avideo file, download a document, view personal information of the userprofile). In some security systems, authorization may determine who has“access” to a particular protected resource.

For example, the authorization process may use an access control list(referred to as an ACL) to determine which users have permission toaccess a file in the file system or an individual field in the databaseapplication program. The access control list may also specify a limitedset of allowed actions that the user can take on the protected resource(e.g., a read operation, a write operation, an execute operation, adelete operation). In attempting to limit access to the datastore andresolve permissions associated with access requests, the security systemmay use a significant number of systems external to the datastore. Forexample, the access control list may be an external system used by thesecurity system. Once the data resource is accessed, a copy of the dataresource may be made and distributed to (e.g., downloaded by) a devicesuch as a smart phone, a piece of wearable technology like a smartwatch, a desktop computer and/or a different server.

As the datastore increases in size, it may become increasingly difficultwhen using an external system to determine which data resources areprotected by the security system and/or which permissions are associatedwith a particular protected resource. As a result, there may beoversights in defining security measures within the datastore. There mayalso be significant computing overhead to manage and utilize theexternal system. It may therefore be difficult to automatically and/orprogrammatically update the external system, which may prevent thesecurity system from scaling to meet high demand of users of thedatastore.

Complexity and/or overhead in defining and maintaining associationsbetween the external system (such as the access control list) and theprotected resources in the data structure of the datastore may promptthe organization to grant permissions in groups. For example, thesecurity system may be used to define a group of users, to whichpermissions of a set of data resources are associated. As a result, auser of the group may be over-permissioned by having access to data thatis unnecessary for the user's purpose, which may increase a securityrisk to an organization if the user (e.g., an employee) loses his or heridentity credentials or takes actions against the interest of theorganization. At the same time, the user may face the inconvenience thatthey are under-permissioned when they need to utilize a protectedresource placed in a different group for which the user is not generallypermissioned.

Once the copy of the data resource leaves the datastore, the copy may beoutside the control of the security system. For example, once theprotected resource is copied out of a first file system of a firstcomputer and into a second file system of a second computer, theprotected resource may generally be beyond the reach of the accesscontrol list of the first computer (in other words, it may no longer be“protected.”). Even where a file is encrypted, once the file isdecrypted on the second computer the file may generally be outside thecontrol of the first computer and the access control list of the firstfile system. While some additional security features may be able to beplaced on files, the set of bites attached to the file may be able to bestripped off, defeating the security features. As a result, it may bedifficult to monitor and/or control use of the data resource on adevice: once the device obtains the data resource, the complete dataresource may generally be used without restriction (including furthercopying and/or dissemination). Further, any data about a use of the dataresource on the device may be difficult to obtain, precluding completeaudit records and limiting analysis and insight.

As a result, the security system may have limited capacity to controland secure the private and confidential data resources stored in thedatastore. The authorization process may provide simple access controlwith a small set of permissions such as read, write, delete and executepermissions. The security system may also use systems that may beexternal and distinct from the datastore to define permissions over dataresources within the datastore, and such a system may be complex anddifficult to scale. The security system may only be able to regulatemere access to protected resources. Once a protected resource leaves adomain of the security system (e.g., leave a particular hierarchicalfile system and access control list), the protected resource may be outof control and out of sight.

SUMMARY

Disclosed are a method, a device, and/or a system of controllingpermissible actions a computing device can perform on a data resourcebased on a use policy evaluating an authorized context of the device. Inone embodiment, a computer-implemented method for authorizing andcontrolling use of a data resource includes receiving a use request froma device to use a protected resource stored in a data node of anon-hierarchical data structure within a datastore. The data nodeincludes an identifier whereby the data node is addressable within thedatastore. The method extracts from the data node and/or a security nodehaving a referential attribute pointing to the data node a use policythat includes computer-readable instructions defining an authorizedcontext for which the device can use the protected resource based on oneor more contextual values. A use transaction is initiated that executesthe computer-readable instructions of the use policy to gather the oneor more contextual values and to determine whether the use requestsatisfies the authorized context for which the device can use theprotected resource.

Access to the protected resource by the device is authorized when it isdetermined that based on the one or more contextual values that the userequest conforms to the authorized context for which the device may usethe protected resource. A set of one or more use keys is generated andthe identifier of the protected resource is appended to each of the setof one or more use keys to form one or more key-identifier pairs. Afirst use key of the set of one or more use keys is returned to thedevice. A redemption request is received from the device including thefirst use key and verifying the first use key. The protected resource isthen streamed to the device.

The identifier of the protected resource may be extracted from a firstkey-identifier pair of the one or more key-identifier pairs and theprotected resource may be retrieved with the identifier of the protectedresource. An expiration condition may also be associated with each ofthe one or more key-identifier pairs. A use terms from thecomputer-readable instructions may define the authorized context for theuse request. An open transaction record of the use transaction may bemaintained, and the one or more contextual values usable to determinethe authorized context stored. The open transaction record may associatethe device with an active use of the protected resource.

The use terms generated from the computer-readable instructions may bereturned to the device. A process of the device operable to monitor useof and enforce ephemerality of the protected resource may be maintainedby a ledger including data identifying the protected resource that is inthe active use by the device and a corresponding instance of the useterms associated with the authorized use of the protected resource.

The method may process a termination notice that is (i) the protectedresource is no longer in the active use by the device, (ii) a networkconnection to the device is lost, and/or (iii) use of the protectedresource has been automatically terminated where the device performed anaction outside of the use terms. A policy update may be received from asecond user that may alter the computer-readable instructions of the usepolicy defining the authorized context for use of the protectedresource.

The open transaction record may be determined to be associated with theprotected resource and the device and the use terms re-generated to anupdated use terms. The re-generation of the updated use terms may bebased on the one or more contextual values stored and/or a new set ofcontextual values to form a new instance of the authorized context. Theupdated use terms generated from the policy update may then be pushed tothe device (e.g., through a network).

The termination notice may include a termination report specifying theaction outside the use terms. A result of the termination notice may belogged, and the open transaction record may be closed. Data of theprotected resource may be divided into two or more segments and asegment identifier attached to each of the one or more key-identifierpairs. Data of the protected resource transmitted to the device mayinclude a first segment of the two or more segments, and the data of theprotected resource transmitted to the device may include a second usekey of the one or more use keys. A continued use request may beautomatically generated by the device when the first segment of the dataof the protected resource approaches an end of a memory buffer of thedevice. The continued use request may include the second use key of theone or more use keys. The use request may include a state datasetspecifying a current state of the device, and at least one of the one ormore contextual values may be called from the state dataset specifyingthe current state of the device. A redemption route and a dynamicprotocol designation may be conveyed with one of the set of one or moreuse keys that may be returned to the device. A first key-identifier pairof the one or more key-identifier pairs may be terminated afterstreaming the protected resource to the device irrespective of anexpiration condition.

In another embodiment, a computer-implemented method for authorizing andcontrolling use of a data resource includes receiving a use request froma device to use a protected resource stored in a data node of anon-hierarchical data structure within a datastore. The method extractsfrom the data node and/or a security node having a referential attributepointing to the data node a use policy that includes computer-readableinstructions defining an authorized context for which the device can usethe protected resource based on one or more contextual values. A usetransaction is initiated that executes the computer-readableinstructions of the use policy to gather the one or more contextualvalues to determine whether the use request satisfies the authorizedcontext for which the device can use the protected resource. Access tothe protected resource by the device is authorized when it is determinedthat each of the one or more contextual values called by the use policyconforms to the authorized context for which the device may use theprotected resource. A use terms is generated from the computer-readableinstructions defining the authorized context for the use request.

The use terms generated from the computer-readable instructions arereturned to the device. The protected resource is then streamed to thedevice, where the device the protected resource is streamed to includesa process operable to monitor use of and enforce ephemerality of theprotected resource by maintaining a ledger that includes dataidentifying the protected resource that is in an active use by thedevice and a corresponding instance of the use terms associated with theauthorized use of the protected resource.

In yet another embodiment, a system includes one or more datastoreservers, a transaction engine, a mediation server, and a network. Theone or more datastore servers include computer readable instructionsthat when executed on one or more processors of the one or moredatastore servers store a data node that includes a protected resource,extract from the data node a use policy including computer-readableinstructions defining an authorized context for which a device can usethe protected resource based on one or more contextual values, andtransmit the protected resource to the device for use by the device uponreceipt of an identifier of the protected resource.

The transaction engine includes computer readable instructions that whenexecuted initiate a use transaction that executes the computer-readableinstructions of the use policy to gather the one or more contextualvalues to determine whether the use request satisfies the authorizedcontext for which the device can use the protected resource.

The mediation server includes computer readable instructions that whenexecuted on a processor of the mediation server process the one or morecontextual values. The mediation server also includes computer readableinstructions to authorize access to the protected resource by the devicewhen it is determined that the use request based on the one or morecontextual values gathered by the use policy conforms to the authorizedcontext for which the device may use the protected resource, and togenerate a use terms from the computer-readable instructions definingthe authorized context for the use request. The system may furtherinclude the device, a key server, and a profile server.

BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments of this disclosure are illustrated by way of example andnot limitation in the figures of the accompanying drawings, in whichlike references indicate similar elements and in which:

FIG. 1.1 is a data resource control network that carries outtransactions between and/or among data resources within a datastore,controls replication of data resources to maintain data uniqueness,controls ownership transfer of the data resources, authenticates adevice requesting access to the datastore, authorizes utilization of aparticular data resource, and/or controls use of data resources througha use policy and a terms engine, according to one or more embodiments.

FIG. 1.2 is an instantiation of the data resource control network ofFIG. 1.1 illustrating a set of servers providing micro services to thedata resource control network, including a datamode microservice forstoring data resources, a usermode microservice comprising a userdatastore for storing user profiles, and an objectmode microservice forstoring relationships between and among the data resources, according toone or more embodiments.

FIG. 2.1 is an instance of a data resource, having a controlled identitywithin the datastore, referred to as a data organism, the data organismcomprising an identifier, a hastory that is an immutable record ofprevious transactions in which the data organism participated forming anevolving identity of the data organism, a contained data that the dataorganism contains, and a set of computing processes that may be executedby the data resource control network of FIG. 1.1 when the data organismis called and/or addressed, according to one or more embodiments.

FIG. 2.2 is a data organism transaction view illustrating a first dataorganism transacting with a second data organism, the transactionconducted by a transaction engine of a mediation server and atransaction record deposited in each of the hastories of the first dataorganism and the second data organism through a record runtimeenvironment, according to one or more embodiments.

FIG. 2.3 is a hastory view illustrating the hastory of FIG. 2.2including a sequential chain of blocks implemented as a hash chain, eachblock including a transaction record and a hash value, the hash valuegenerated based upon the transaction record of the block and apenultimate hash value of a previous block, a root hash unique withinthe datastore for a given data within each of the blocks and a givenblock order of the sequential chain, according to one or moreembodiments.

FIG. 2.4 is a second hastory view illustrating the hastory of FIG. 2.2implemented as a Merkle tree, a binary tree of a set of leaf nodesextended from the sequential chain of blocks to a root node thatincludes a root hash that is unique within the datastore, according toone or more embodiments.

FIG. 2.5 is a data organism identity evolution view showing the dataorganism of FIG. 2.1 copied to form an original data organism and acopied data organism that remains unique within the datastore as eachengages in different transactions that are added to each of thehastories to result in different root hashes, according to one or moreembodiments.

FIG. 2.6 is a transaction process flow illustrating a process by whichtwo of the data organisms of FIG. 2.2 engage in a transaction to resultin one or more evolved identities, according to one or more embodiments.

FIG. 2.7 is a second transaction process flow illustrating a detailedprocess by which one or more data resources and/or data organismstransact such that data organisms having controlled identities of thetransacting data organisms remain unique within the datastore, accordingto one or more embodiments.

FIG. 2.8 is a controlled copying process flow illustrating a process bywhich the copying transaction shown in FIG. 2.5 may be controlled withinthe datastore such that the original data organism and the copied dataorganism remain unique, according to one or more embodiments.

FIG. 2.9 is a data organism transfer process flow showing a process bywhich the data organism of FIG. 2.1 may have an ownership transferredbetween a first user and a second user by changing an ownershipdesignation and depositing a record of the transaction in a block of thehastory, according to one or more embodiments.

FIG. 2.10 is a second data organism transfer process flow illustrating asecond process by which the ownership of the data organism may betransferred by copying the data organism, and: flagging an original ofthe data organism as extinct; depositing an ownership transfer as atermination block of the hastory of the original data organism; and/or,erasing the original data organism from the datastore, according to oneor more embodiments.

FIG. 2.11 is a media use transaction view illustrating a video datastored in a media file that is a first data organism, the media file anapplication resource for a second data organism that is an applicationprofile and the media file accessed by a user associated with a userprofile that is a third data organism, according to one or moreembodiments.

FIG. 3.1 is an authentication transaction network in which the device ofFIG. 1.1 completes a multi-factor login that may establish a securecommunication channel over the network and submits an identity claimcomprising a device root hash of a device hastory to a server forcomparison to a profile root hash of a profile hastory to validate theidentity claim, according to one or more embodiments.

FIG. 3.2 is a multi-factor login process flow of the multi-factor loginof FIG. 3.1, according to one or more embodiments.

FIG. 3.3 is the multi-factor login process of FIG. 3.2 continued,according to one or more embodiments.

FIG. 3.4 is an authentication process flow illustrating a process bywhich the device of FIG. 3.1 may be securely authenticated usingun-forgeable identity credentials that define a fourth authenticationfactor based on a transaction history of the device and the user profileassociated with the device, according to one or more embodiments.

FIG. 3.5 is an identity evolution process flow that illustrates aprocess for evolving both the profile hastory and the device hastory inparallel to synchronize their identities for comparison in a subsequentauthentication request, according to one or more embodiments.

FIG. 3.6 is a profile hastory and device hastory view illustrating adetailed view of the sequential chain of blocks of the profile hastorywith transactions records such as a profile data and several identityclaim records associated with transaction such as a login transaction, adata use transaction and a log out transaction, according to one or moreembodiments.

FIG. 3.7 is an real-time authentication process flow illustrating aprocess by which the device of FIG. 3.1 can submit to just-in-timeauthentication in association with an authorization request to utilize adata resource of the datastore of FIG. 1.1, according to one or moreembodiments.

FIG. 3.8 is an application identity evolution process flow showing aprocess whereby an identity claim may be made by the device and/or theuser profile against an application profile of an application program,according to one or more embodiments.

FIG. 3.9 is a profile attack detection process flow showing a processthat invalidates forged identify credentials if the identity credentialsare copied from the device based on the evolution of the device hastoryand the profile hastory, according to one or more embodiments.

FIG. 3.10 is a forged credential detection view showing a failedidentity claim by an impersonator who cloned credentials from a deviceof user, the failed identity claim identifier and optionally respondedto by the process of FIG. 3.9, according to one or more embodiments.

FIG. 4.1 is an authorization network showing a set of servers usable toauthorize use of a protected resource by a device and control use of theprotected resource on the device using a terms engine according to a usepolicy, according to one or more embodiments.

FIG. 4.2 is a contextual authorization process showing the authorizationnetwork of FIG. 4.1 receiving a use request from the device, processingan identity claim, retrieving a use policy that evaluates one or morecontextual values, depositing a use key in a key server, and returning ause key to the device, according to one or more embodiments.

FIG. 4.3 is a controlled data delivery process showing the contextualauthorization network of FIG. 4.2 receiving a redemption requestcomprising the use key, verifying the use key in the key server, andstreaming data of the protected resource to the device, according to oneor more embodiments.

FIG. 4.4 is a terms engine view showing the contextual authorizationnetwork of FIG. 4.3 monitoring use of and enforcing ephemerality of dataof the protected resource of FIG. 4.1 through a device-side terms engineassociated through the network with a server-side terms engine,according to one or more embodiments.

FIG. 4.5 is a real-time revocable authorization process by which data ofthe protected resource in active use by the device may have useterminated based on an updated use policy generated by a second user incontrol of the protected resource, a termination notice and/or atermination report generated by the device and transmitted to themediation server to close the use transaction, according to one or moreembodiments.

FIG. 4.6 is a use key generation process flow illustrating a process bywhich the contextual values of the use policy may be evaluated and theuse key of FIG. 4.2 may be generated, according to one or moreembodiments.

FIG. 4.7 is a continued process flow of the use key generation processflow of FIG. 4.6, illustrating a process by which the contextual valuesof the use policy may be evaluated and the use key of FIG. 4.2 may begenerated, according to one or more embodiments.

FIG. 4.8 is a use request evaluation process flow showing a process forauthorizing use of a protected resource according to a set ofcomputer-readable instructions of a use policy, according to one or moreembodiments.

FIG. 4.9 is a key generation and redemption process flow showing,subsequent to evaluation of the contextual values of the use policy ofFIG. 4.1, a process by which the use keys may be generated, returned tothe device, and redeemed upon a redemption request by the device,according to one or more embodiments.

FIG. 4.10 device active data use process flow showing a process that canbe used to monitor use of the protected resource by the device and/orenforce ephemerality of the protected resource on the device inaccordance with the use policy and a set of use terms generated based onthe use policy, according to one or more embodiments.

FIG. 4.11 is a use termination process flow illustrating a process bywhich an open transaction record of the active use of the protectedresource is closed when the protected resource is determined to nolonger be in active use, a network connection to the device was lost,and/or the device performed an action outside of the use terms,according to one or more embodiments.

FIG. 4.12 is an enterprise use policy view illustrating use of the usepolicy to define an authorized context for limited access and use of aprotected resource that is a confidential spreadsheet, the authorizedcontext including flexible controls such as a requirement that anexecutive of the enterprise be within a geospatial fence of the premisesfor an employee to view the confidential spreadsheet, according to oneor more embodiments.

Other features of the present embodiments will be apparent from theaccompanying drawings and from the detailed description that follows.

DETAILED DESCRIPTION

Disclosed are a method, a device, a system and/or a manufacture ofcontrolling permissible actions a computing device can perform on a dataresource based on a use policy evaluating an authorized context of thedevice. Although the present embodiments have been described withreference to specific example embodiments, it will be evident thatvarious modifications and changes may be made to these embodimentswithout departing from the broader spirit and scope of the variousembodiments.

FIG. 1.1 is a data resource control network 1.100 that carries outtransactions between and/or among data resources within a datastore1.114, controls replication of data resources to maintain datauniqueness, controls ownership transfer of the data resources,authenticates a device 1.104A requesting access to the datastore,authorizes utilization of a particular data resource, and/or controlsuse of data resources through a use policy and a terms engine 1.112,according to one or more embodiments. Specifically, FIG. 1.1 shows anetwork 1.101, a mediation server 1.102, two devices 1.104A and 1.04B, aset of servers 1.106A through 1.106N (each of which may include adatastore 1.114A through 1.114N and a record runtime environment 1.116Athrough 1.116N, respectively), a key server 1.108, a transaction engine1.110, and a terms engine 1.112 having a terms engine server-side 1.112Aalong with a terms engine device-side 1.112B communicatively coupledthrough the network 1.101.

The mediation server 1.102 may receive a communication from the device1.104A over the network 1.101 to utilize a data resource stored in oneor more of the datastores 1.114A through 1.114N. Utilization may be, forexample, using the data resource on the device 1.104A and/or managingthe data resource within one or more of the datastores 1.114 (e.g.,copy, delete, update). The device 1.104A and/or the device 1.104B may bea smartphone, a tablet, a desktop computer, or a different server. Thedevice 1.104A and/or the device 1.104B may also be a piece of machinerylike a CNC mill or a 3D printer, a vehicle such as an automobile havingan onboard computer and networking capability, a piece of networkingequipment such as a router, and/or an unmanned autonomous vehicle. Thenetwork 1.101 may be a network connecting two or more computers such asa wide area network (WAN) or the internet.

A data resource is a discrete piece of data, or portion thereof, that isusable as a resource for an application program. For example a dataresource may include a file, a document, a record, a message, an image,statistical and scientific data, and/or media such as music or video. Ina specific example, a data resource may include a user profile thatincludes a set of attributes and values associated holding informationabout a particular person. Similarly, a portion of the user profile suchas a single attribute-value pair specifying a social security number ofthe person may also be a data resource. In another example, a dataresource may include an audio file (e.g., an MP3 file, an AAC file),and/or a portion of that audio file, for example a 30 second longsection streamed to a device for use. Where the data resource isprotected by a security system, for example that may requireauthentication and/or authorization before utilization, the dataresource may be referred to as the protected resource. The data resourcemay also be a cryptographic key of a cryptographic currency, for examplea Bitcoin private key.

In addition, where the data resource has a controlled identity withinone of the datastores 1.114, the data resource may be containerized intoa particular data structure and associated with a hash history, referredto as a hastory 2.104, as shown in FIG. 2.1. The data resource havingthe hastory 2.104 may also be referred to as a data organism 2.100 dueto an evolving identity based on an immutable record of previoustransactions in which a particular data organism 2.100 participated. Theidentity of a data organism 2.100 may evolve based upon transactionrecords (e.g., the transaction record 2.302 of FIG. 2.2) added to thehastory of the data organism 2.100 by the record runtime environment1.116 associated with a particular server 1.106 on which the particulardata organism 2.100 is stored.

The data resource control network 1.100 may act as a data privatizationnetwork. One or more embodiments that comprise the network 1.100,working along or in combination, may be able to track data resources andensure their uniqueness, authenticate users requesting access to one ormore of the datastores 1.114, authorization access and use requests ofthe data resources in addition to control use of the data resources (incontrast to mere access to data resources without continuing usecontrol). The data resource control network 1.100 may be used by anenterprise such as a corporation, one or more government agencies, ormay be used as a platform for application programs to provide servicesto consumers (e.g., secure messaging and file transfer). The users maybe, for example, enterprise executives, employees, healthcareprofessionals, consumers, attorneys and their clients, a governmentemployee, a datastore administrators, etc. First, the device 1.104A mayrequest a transaction between one or more of the data resources, forexample as a normal operation of an application program calling on dataresources to populate a user interface of the device 1.104A. Themediation server 1.102 transacts in one or more of the data resourcesand/or data organisms using the transaction engine 1.110, as shown inconjunction with FIG. 2.1 through FIG. 2.11. A transaction (e.g., thetransaction 2.200 of FIG. 2.2) may include, for example, an instance ofan interaction between two data resources (e.g., an interaction betweena user profile and document when a user associated the user profileviews the document, as shown and described in FIG. 2.11). Thetransaction may also be an interaction such as a controlled copyingtransaction in which an original data organism and a copy of the dataorganism are maintained as unique within the datastore (as shown anddescribed in FIG. 2.5). Another example of a transaction includes anownership transfer in which the original data organism 2.100 may haveownership transferred between a first user and a second user (as shownand described in conjunction with FIG. 2.9 and FIG. 2.10).

The mediation server 1.102 may also coordinate secure login of thedevice 1.104A to one or more servers, and may orchestrate authenticationof the device 1.104A as shown and described in conjunction with FIG. 3.1through FIG. 3.10. The authentication process may also include real-timeauthentication in association with the authorization of the device1.104A to utilize a particular date resource (e.g., in conjunction witha use transaction as shown in FIG. 4.1). The authentication processverifies an identity claim made by the device 1.104A by utilizing theevolving nature of an identity of the user profile that is associatedwith a user and/or the device 1.104A (such as the user profile 3.106 ofFIG. 3). The identity claim may include one or more identitycredentials, including a root hash of a device hastory. Verifying theidentity claim by comparing the root hash of the device hastory to theroot hash of the profile hastory may result in virtually un-forgeableidentity credentials, greatly increasing security of the datastore 1.114and control over the data resources. The authentication process mayutilize a second device, the device 1.104B, for example to store thedevice hastory and/or identity credentials to be communicated in theidentify claim over a channel that is distinct from the channel overwhich use of the data resource was requested.

The mediation server 1.102 may also operate the terms engine 1.112 tocontrol access to, and use of, a data resource (referred to as aprotected resource 4.102) by the device 1.104 through a use transactionand a use policy 4.108, as shown and described in conjunction with FIG.4.1 through 4.12. The use policy 4.108 may evaluate one or morecontextual values defined in computer-readable instruction 4.204 toauthorize access to and use of the data resource in conjunction with thekey server 1.108, as shown in FIG. 4.1 and FIG. 4.9. The terms engineserver-side 1.112A may maintain an open transaction record 4.404 of adata resource and/or a data organism 2.100 that is in an active use bythe device 1.104A. The device 1.104A may then use the terms enginedevice-side 1.112B to monitor use of and enforce ephemerality of thedata resource on the device 1.104A according to a use terms (e.g., theuse terms 4.116 of FIG. 4.1) generated from the use policy 4.108. Upontermination of the use by the device 1.104A, a termination report 4.508logged by the mediation server 1.102 and the open transaction record maybe closed. For example, the use of the protected resource 4.102 may beterminated when: the use falls outside the authorized context, the useof the protected resource 4.102 by the device is no longer active, anetwork connection is lost (e.g., through the network 1.101), and/or asecond user that may own the protected resource revokes authorizationwith a policy update 4.501, as shown in FIG. 4.5.

The arbiter 1.900 may act as a temporary owner for any of the dataresources and/or data organisms 2.100. According to the computingprocesses defining the transaction (some of which may be specified in aparticular data resource and/or data organism 2.100, e.g., as thecomputing processes 2.110 of FIG. 2.1), ownership of the particular dataresource and/or the particular data organism 2.100 may be temporarilygiven over to the arbiter 1.900. The arbiter 1.900 may re-distribute thedata organism 2.100 to one or more users according to the computingprocesses of the transaction. For example, the arbiter 1.900 may be usedto effect an escrow, a wager, and/or another type of complex agreementand/or transaction in which events programmatically alter a state of thedata resource and/or data organism, including the value of an attributespecifying an ownership designation 2.106. The arbiter 1.900 may connectto one or more external services, not shown in the embodiment of FIG.1.1, to retrieve inputs to determine an outcome in accordance with theuse policy 4.108.

Each of the servers of FIG. 1.1 (e.g., the servers 1.106A through1.106N, the mediation server 1.102, the key server 1.108) are computersthat include computer processors, computer memories, and mayadditionally use storage such as a hard disk, a solid-state drive and/orother physical storage/memory mechanisms such as memristors. One or moreof the servers may be implemented on shared physical hardware or eachmay run on a dedicated piece of physical hardware. Each of theindividual datastores 1.114A through 1.114N may collectively act as asingle datastore (e.g., referred to as the datastore 1.114). Forexample, the datastore 1.114A may store data resources and/or dataorganisms 2.100 related to users, datastore 1.114B may store dataresources and/or data organisms 2.100 related to files (e.g., adocument, an electronic record), and datastore 1.114N may store dataresources and/or data organisms related to messages (e.g., an electronicmessage). Each of the networks 1.101 shown in the embodiment of FIG. 1.1may be similar or distinct. For example, the instance of the network1.101 connecting the mediation server 1.102 to the device 1.104 may bethe internet whereas an instance of the network 1.101 connecting each ofthe servers 1.106 to the mediation server 1.102 may be a local areanetwork (LAN) and/or a wide area network (WAN).

The data resource stored in the datastore 1.114 may be a groupedcollection of attributes and values within a data structure (which maybe commonly referred to as a data object). The grouped attributes andvalues may comprise an identifier 2.102 whereby the data resource may beaddressed in the datastore (e.g., a file name, a unique identifier, aglobal unique identifier) and a contained data (e.g., similar to thecontained data 2.108 of FIG. 2.1) that the particular data resourcecontains. The contained data of the data resource, for example, may beone or more attributes containing data such as a binary large object(BLOB) of a primitive data such as a document, a music file (e.g., anMP3, an AAC file) and/or a video file. Other attributes may bereferential attributes pointing to other data resources to specifyrelationships (e.g., containing relationships, directed acyclicrelationships, and/or contextual relationships). Where the data resourceincludes protections such as an authorization process before it can beaccessed and/or used, the data resource may be referred to as aprotected resource. The data resource, the protected resource and/or thedata organism 2.100 are further described in conjunction with FIG. 2.1.

The datastore 1.114 and/or each of the datastores 1.114A through 1.114Nthat comprise the datastore 1.114 may be implemented on a commercialdatabase application supporting a collection of grouped attribute-valuepairs forming the data resources and/or the data organisms 2.100 (e.g.,a “NoSQL” database supporting a document store, such as MongoDB®).Additionally, a data structure supporting collections of attributes andvalues of the data resource may be built on top of the commercialdatabase application. For example, a model supporting data resources maybe built on top of a key value store such as Aerospike®, and/or acolumner store such as Cassandra®. In one preferred embodiment, therelationships between the data resources and/or the data organisms arestored according to a non-hierarchical data structure that may bedisclosed in co-pending patent applications by a similar inventiveentity and/or common assignee as the present disclosure. In such case,the data resources and/or data organisms 2.100 may be stored as nodes inthe non-hierarchical data structure, resulting in, for example, a graphdata structure and/or a directed acyclic graph with one or more of thedata resources including referential attributes pointing to other dataresources.

Demonstrating an example of specialization of each of the datastores1.114A through 1.114N that together comprise the datastore 1.114, FIG.1.2 is an instantiation of the data resource control network of FIG. 1.1illustrating a set of servers providing micro services to the dataresource control network 1.200, including a datamode microservice 1.130for storing data resources, a usermode microservice 1.140 comprising auser datastore 1.141 for storing user profiles, and an objectmodemicroservice 1.120 for storing relationships between and among the dataresources, according to one or more embodiments. In accordance withco-pending patent applications by a similar inventive entity and/or acommon assignee of the present disclosure, a subject datastore 1.131 ofthe datamode microserver 1.130 may store data resources and/or dataorganisms 2.100 that include a primitive data such as an image,document, music and/or video. A user datastore 1.141 may store dataresources and/or data organisms 2.100 that are user profiles 4.404associated a user of one or more of the datastores 1.114 of the dataresource control network 1.200. An object datastore 1.121 of theobjectmode microserver may contain data resources and/or data organisms2.100 representing relationships between other data resources and/ordata organisms 2.100 (for example, between a video file and its an imagerepresentation as stored in the subject datastore 1.131). In addition,the object datastore 1.121 may store control relationships such as thesecurity node 4.110 of FIG. 4.1.

FIG. 2.1 is an instance of a data resource, having a controlled identitywithin the datastore, referred to as a data organism 2.100, according toone or more embodiments. The data organism 2.100 may include anidentifier 2.102, a hastory 2.104 that is an immutable record ofprevious transactions in which the data organism participated forming anevolving identity of the data organism 2.100, a contained data 2.108that the data organism contains, and a set of computing processes thatmay be executed by the data resource control network 2.100 of FIG. 1.1when the data organism 2.100 is called and/or addressed, according toone or more embodiments. The identifier 2.102 provides a means toaddress the data organism 2.100 within the datastore 1.114, and ispreferably a unique identifier (UID) and/or a globally unique identifier(GUID) generated through a random or pseudo-random number generator.This method of generation may ensure that there is a very lowprobability of two data resources having the same unique identifierwithin the datastore and/or across all datastores 1.114 on the network1.101.

The hastory 2.104 is a hash history of the data organism 2.100. Asequential chain of blocks 2.300 forms an immutable record oftransactions in which the data organism 2.100 participated. Each block2.304 of the sequential chain of blocks 2.300 comprise a transactionrecord 2.302 of a transaction 2.200 in which the data organism 2.100previously participated ( ‘T1’ may stand for a first transaction, ‘T2’for a second transaction, etc.). In addition, each of the blocks 2.304includes a unique hash value (e.g., the hash value 2.306 of FIG. 2.3)calculated with a hash function. The hash function may depend on bothdata of each of the blocks in addition to an order of each of the blockssuch that any alternation of the data of any of the blocks or the blockorder in the sequential chain yields a different root hash of thehastory 2.104. Thus, the set of transition stored in the sequentialchain may be immutable. The most recent hash value 2.306 in thesequential chain of blocks 2.300 may be referred to as a root hash value2.306, and may be used as an identity of the particular data organism2.100 and/or to generate identity claims. The hastory is furtherdescribed in conjunction with FIG. 2.2 through 2.4.

The data organism 2.100 may include the ownership designation 2.106attribute that may have as an associated value a name (e.g. of a user,an organization, a computer application) and/or a reference to adifferent data resource such as a user profile representing the user,the organization, and/or the application program. In other cases, theownership of the data organism 2.100 may be implicit through referencefrom the user profile.

The contained data 2.108 may contain one or more attributes andassociated values of data that the data organism 2.100 is meant to hold,contain and/or represent. For example, where the data organism 2.100 isa media file, the contained data 2.108 may contain a video data, imagesrepresenting the video data, and/or metadata related to the video data.The data organism 2.100 may also contain computing processes 2.110 thatmay be executed (e.g., by the mediation server 1.102) when the dataorganism 2.100 is called and/or addressed, for example by a differentdata organism 2.100. The computing processes 2.110 may be used in partor in full to determine who the data organism 2.100 transacts. Thecomputing processes 2.110 may contain the computer-readable instructions4.204 that may also specify a use policy 4.108 that defines anauthorized context for which access to and/or use of the data organism2.100 is authorized by the device 1.104A and/or a user of the device1.104A. The use policy 4.108 evaluates one or more contextual values todetermine whether a use request satisfies the authorized context. Forexample, the contextual values may include which user is making theauthorization request, a date and a time of the authorization request, ageospatial location of the device, a value called from another dataorganism 2.100, and/or a value called from an API. Similarly, thecomputing processes 2.110 may include instructions executable by thearbiter 1.900 of FIG. 1.1. The computing processes 2.110 may be writtenin a Turing-complete scripting language that supports a read operation,a write operation (e.g., to data of the data organism 2.100 and/or adifferent data organism 2.100), a go-to operation, and a conditionalbranching operation.

FIG. 2.2 is a data organism transaction view 2.250 illustrating a firstdata organism 2.100A transacting with a second data organism 2.100B, thetransaction conducted by a transaction engine 1.112 of a mediationserver 1.102 and a transaction record 2.302 deposited in each of thehastories 2.104A and 2.104B of the first data organism 2.100A and thesecond data organism 2.100B through a record runtime environment 1.116Aand 1.116B, according to one or more embodiments. In FIG. 2.2, thetransaction 2.200 may be initiated when data organism 2.100A receives acommunication addressed from data organism 2.100B. For example, the dataorganism 2.100B may be a user profile (e.g., the user profile 3.114)requesting access to an electronic record in the contained data 2.108Aof the data organism 2.100A. In another example, the data organism2.100B may contain within the contained data 2.108 software code of anapplication program and an application profile associated with theapplication program may address the data organism 2.100A to instructdata organism 2.100A to automatically update the software code. Eachserver 1.106 may pass any required data to effect the transaction 2.200to the transaction engine 1.112 of the mediation server 1.102. Thetransaction engine 1.112 may be a set of machine-readable instructionsthat carries out the transaction 2.200 according procedures, includingmachine-readable instructions defined in the contained data 2.108 and/orthe computing processes 2.212 of one or more data organisms 2.100.Examples of the transaction 2.200 include a controlled copying of a dataorganism 2.100, an ownership transfer the data organism 2.100, and/or ause transaction of the data organism 2.100. In each such example, a userprofile that owns the data organism 2.100 may address the data organism2.100 to initiation the controlled copying or ownership transfertransaction.

Upon completion of the transaction 2.200, a transaction record 2.200 isgenerated by the transaction engine 1.112. The transaction record 2.302may include data as to the nature of the transaction 2.200, an outcomeof the transaction 2.200, which data organisms 2.100 and/or dataresources interacted, a date and/or time of the transaction 2.200, amonetary value associated with the transaction 2.200, details about useof the data organism 2.100, and any additional data relevant forrecordation and/or accounting purposes. The transaction record 2.302 istransmitted from the mediation server 1.102 to each server 1.116 thatincludes data organisms 2.100 participating in the transaction 2.200,and specifically the transaction record 2.302 may be submitted to arecord runtime environment 1.116. In the embodiment of FIG. 2.2, thetransaction record 2.302 is transmitted to record runtime environment1.116A to be deposited as ‘T5’ via record deposition 2.204A in thehastory 2.104A of data organism 2.100A. Similarly, the transactionrecord 2.302 is transmitted to the record runtime environment 1.116B tobe added as ‘T3’ of the hastory 2.104B. Following each of the recorddepositions 2.204, each of the hastories 2.104 may re-calculate the roothash 2.310 of each of their respective sequential chains 2.300, as shownand described in conjunction with FIG. 2.6. Although not shown in theembodiment of FIG. 2.2, both the data organism 2.100A and the dataorganism 2.100B may be resident on the same server 1.106A. Additionally,a transaction 2.200 may occur between one data organism 2.100 (e.g., adata resource having a controlled identity within the datastore 1.114)and one or more data resource that do not have controlled identities.

FIG. 2.3 is a hastory view 2.350 illustrating the hastory 2.104 of FIG.2.1 including a sequential chain of blocks 2.300 implemented as a hashchain, each block 2.304 including a transaction record 2.302 and a hashvalue 2.306, the hash value 2.306 generated based on the transactionrecord 2.302 and a penultimate hash value 2.308 of a previous block2.304, a root hash 3.210 unique within the datastore 1.114 for a givendata within each of the blocks 2.304 and a given block order of thesequential chain 2.300, according to one or more embodiments. In FIG.2.3, the hastory 2.104 is shown as a set of five blocks, the block2.304A through 2.304D, although the hastory 2.104 may grow to anarbitrary number of blocks 2.304 in length. A first block 2.304 of thesequential chain 2.300, shown as a genesis block 2.303A, may be a blockinitiating the hastory 2.104 and the controlled identity of the dataorganism 2.100. For example, where the data organism 2.100 is a userprofile 3.114, the genesis block 2.303A may contain a transaction record2.302A that includes data related to or associated with a user that theuser profile represents, such as an email address, an IP address,associated device IDs, a social security number, a physical mailingaddress, an age, and/or other information of the user. Where the dataorganism 2.100 is a media file, the genesis block 2.303A may be datarelated to when the data organism 2.100 was created and a hash value ofthe initial contained data 2.108 of the data organism 2.100. The genesisblock 2.302A is hashed according to a hash function (e.g., the SHA256algorithm) denoted ‘f( ),’ using as an input the transaction record2.302A to yield the hash value 2.306A. The hash function may be acryptographic function and/or algorithm that converts a set of data to astring of other data such as alphanumeric characters. Additionally, thehash function may be a function that can be used to map digital data ofarbitrary size to digital data of fixed size, where a small change inthe input digital data yields a large difference in the output digitaldata of fixed size. The hash chain may be usable in successiveapplication of a cryptographic hash function to a piece of data, can beapplied successively to additional pieces of data in order to record achronology of an existence of all of the data.

After undergoing a second transaction 2.200, the transaction record2.302 may be generated and deposited in the block 2.204B. For example,the transaction record 2.302B may be a login transaction where the dataorganism 2.100 is the user profile, or may be a use transaction wherethe data organism 2.100 is the media file. In calculating the hash value2.406B of block 2.304B, the hash function uses inputs that include thedata of the transaction record 2402B in addition to the previous hashvalue 2.306A. This process continues as each block 2.406 is added to thesequential chain 2.300 such that a new root hash 2.310 is generatedusing the most recent transaction record 2.302 (e.g., of a presenttransaction) along with a penultimate hash 3.208 associated with atransaction that immediately proceeded the present transaction. Afterrepeating this process for five transactions 2.200, the sequential chainof blocks 2.300 may include four previous transactions 2.301, and onemost recent block, the block 2.304E. In the embodiment of FIG. 2.3, thelast hash value 2.306E of the sequential chain of blocks 2.300 is theroot hash 2.310, which may be used to uniquely distinguish the dataorganism 2.100 from any other data organisms 2.100 in the datastore1.114. The root hash 2.310 is unique for a given data of each of thetransaction records 2.302 and for a given order of the blocks 2.304 ofthe sequential chain of blocks 2.300. Although not shown in theembodiment of FIG. 2.3, the hash function may additionally use as inputsadditional data such as a nonce.

FIG. 2.4 is a second hastory view 2.450 illustrating the hastory 2.104of FIG. 2.1 implemented as a Merkle tree, a binary tree of a set of leafnodes extended from the sequential chain of blocks 2.300 to a root nodethat includes a root hash 2.310 that is unique within the datastore1.114, according to one or more embodiments. The Merkle treeimplementation of the hastory 2.104 may be useful to reduce computingoverhead in re-computing the root hash 2.310 and/or where the hastory2.104 may include a large number of blocks 2.304. In FIG. 2.4, the dataof each pair of the blocks 2.302 in the sequential chain of blocks 2.300starting with the genesis block 2.303A are used as inputs to a hashfunction to generate a leaf hash 2.400 that is a “leaf node” of theMerkle tree. For example, in FIG. 2.4 the genesis block 2.303A and theblock 2.304B are both hashed to yield a leaf hash 2.400A. In turn, eachpair of leaf hashes 2.400 are input into the hash function to yield theleaf hash 2501. Any unpaired blocks 2.304 are replicated to form a pairof duplicate blocks 2.304. For example, where block 2.304E is anunpaired block 2.304, the data of the block 2.304E is replicated to forma block 2.304F (denoted ‘T5’ and which may be referred to as “T5prime”). The leaf hash 2.400C is then computing using as inputs block2.304E (T5) and the block 2.304F (T5′). Later, when an even-numberedtransaction (e.g., T6) is added to the sequential chain of blocks 2.300,T5′ is replaced with T6 and all leaf hashs dependent on the block 2.304Fare re-calculated (e.g., leaf hash 2.400C, the leaf hash 2.401B, theroot hash 2.310). In the case of the Merkle tree, the penultimate hash2.408 may be the a hash value 2.500 of a leaf node that is dependent onthe transaction immediately previous to a present transaction. Forexample, in the embodiment of FIG. 2.4, the penultimate hash 2.408 maybe the hash value 2.500C that uses as an input T5 of FIG. 2.4. The hashfunction calculating the root hash 2.310 uses the penultimate hash as aninput through the incorporation of the penultimate hash in a higher leafnode (e.g., the lead node (1-1) of FIG. 2.4.

FIG. 2.5 is a data organism identity evolution view 2.550 showing thedata organism 2.100 of FIG. 2.1 copied to form an original data organism2.300A and a copied data organism 2.300X that remain uniques within thedatastore as each engages in different transactions 2.200 that are addedto each of the hastories 2.104A and 2.104X to result in different roothashes 2.310, according to one or more embodiments. In FIG. 2.5, therecord runtime environment 1.116 via record deposition 2.204 depositsthe transaction record 2.302 (T4) as a new block 2.304 in the dataorganism 2.100A. In the embodiment of FIG. 2.5, the transaction 2.200 T4is a controlled copying transaction as shown and described inconjunction with FIG. 2.8. The result of the controlled copyingtransaction is: a new block 2.304 added to the hastory 2.104A (T5) and anew block 2.304 added to the hastory 2.104X (T5′). The data of T5 andT5′ is slightly different, e.g., T5 may include an “original”designation within the transaction record 2.302 and T5′ may include a“copied” designation. As a result, the hastory 2.100A has been “forked”into the hastory 2.104A of the original data organism 2.100A and thehastory 2.104X of the copied data organism 2.100X. Alternatively,although not shown in FIG. 2.5, the copied data organism 2.100X maybegin with a new hastory 2.104X having a single genesis block 2.303A.The original data organism 2.100A and the copied data organism 2.100Xwill undergo different transactions 2.200, diverging their identities.Following the controlled copying, the root hash 2.306A of the originaldata organism 2.100A and the root hash 2.306X of the copied dataorganism 2.100X will not have the same values due to the cryptographicproperties of the hash function. Thus, both the original data organism2.100A and the copied data organism 2.100X remain unique within thedatastore 1.114, and computing processes may be defined (including thecomputing processes of the transaction engine 1.110) that pertain toand/or specify either individually.

FIG. 2.6 is a transaction process flow 2.600 illustrating a process bywhich two of the data organisms of FIG. 2.2 engage in a transaction toresult in one or more evolved identities, according to one or moreembodiments. Operation 2.602 receives a communication from a first dataorganism 2.100 addressed to a second data organism 2.100, each of thedata organisms 2.100 participants in a present transaction 2.200comprising one or more computing processes. The computing processes mayinclude, for example, the computing processes 2.110 contained in eitheror both of the first data organism 2.100 and the second data organism2.100. The communication may be a message such as a use request (e.g.,the use request 4.130 of FIG. 4.1) from the first data organism 2.100(e.g., a user profile 3.114) to the second data organism 2.100 (e.g.,containing a document). Operation 2.604 determines that the first dataorganism 2.100 and/or the second data organism 2.100 has a controlledidentity within the datastore 1.114, a particular data organism 2.100 ofthe first data organism 2.100 and/or the second data organism 2.100including a hastory 2.104 forming a unique identity based upon a set ofprevious transactions (e.g., a set of the transactions 2.200) of theparticular data organism 2.100. For example, the transaction engine1.110 and/or the server 1.106A may determine that a data resource has acontrolled identity (e.g., that it an instance of the data organism2.100) by the presence of a hastory attribute of the data organism 2.100and/or a different attribute indicating that the data resource is to bea controlled identity within the datastore 1.114. Operation 2.606executes the one or more computing processes utilizing the containeddata 2.108 of the first data organism 2.100 and/or the second dataorganism 2.100. For example, the transaction 2.100 may involve the useof a video file of the contained data of the second data organism 2.100.In another example, the data organism 2.100 may contain within thecontained data 2.108 an SQL query executed against a relational databaseapplication when the data organism 2.100 is called. Operation 2.608determines that the present transaction 2.200 is complete when the oneor more computing processes terminate. For example, as shown inconjunction with FIG. 4.5, a use transaction may terminate when aprotected resource is no longer in active use by the device 1.104. Inoperation 2.610, a transaction record 2.302 of the present transaction2.200 is generated. Generating the transaction record 2.302 may alsooccur along with the process of closing an open transaction record(e.g., the open transaction record 4.404 of FIG. 4.404). Operation 2.612deposits the transaction record 2.302 of the present transaction 2.200as a new block 2.304 in a sequential chain 2.300 of the hastory 2.104 ofthe first data organism 2.100 and/or the second data organism 2.100having the controlled identity. Operation 2.614 re-calculates the roothash 2.310 of the hastory 2.104 with the hash function using inputscomprising the new block 2.304 of the hastory 2.104, to evolve thecontrolled identity of at the first data organism 2.100 and/or thesecond data organism 2.100, as further shown and described inconjunction with FIG. 2.3 and/or FIG. 2.4.

FIG. 2.7 is a second transaction process flow 2.700 illustrating adetailed process by which one or more data resources and/or dataorganisms 2.100 transact such that data organisms 2.100 havingcontrolled identities participating in the transaction 2.200 remainunique within the datastore 1.114, according to one or more embodiments.Operation 2.702 transmits a communication (e.g., sends an addressed)from a first set of one or more data resources. The one or more dataresources may include one or more data organisms 2.100. For example, thecommunication may be a 1:N communication in which a data organism 2.100Athat is a user profile 3.114 sends a message to a number of other dataorganisms 2.100B through 2.100N that are also user profiles 3.114.Similarly, the communication may be N:1 or N:N, with ‘N’ representing anarbitrary number of transacting data resources and/or data organisms2.100. Similarly, a data organism 2.100 may address itself, for examplewhen a user associated with a user profile 3.114 updates data of theuser profile 3.114. Operation 2.704 receives the communication at asecond set of one or more data organism 2.100. Operation 2.706 extractscomputing processes used in the transaction 2.200. For example, thecomputing processes may specify a series of operations to perform aspart of the transaction 2.200 when the data organism 2.100 is calledand/or addressed. In another example, the computing processes may definea use policy 4.108 comprising computer-readable instructions calling oneor more contextual values to define an authorized context for whichutilization of a protected resource is authorized. The computingprocesses may be extracted from a server (e.g., the mediation server1.102, the usermode microservice 1.140), and/or from the contained data2.108 of the data resource and/or the data organism 2.100 (e.g., thecomputing processes used in the transaction 2.200 may include thecomputing processes 2.110 stored within the contained data 2.108).Operation 2.708 executes the computing processes to effect thetransaction 2.200. For example, operation 2.708 may effect a controlledcopying of the data organism 2.100 through a sub-set of the operationsof the process flow 2.800 of FIG. 2.8.

Operation 2.710 is a decision that determines whether the contained data2.108 of one or more of the data resources and/or data organisms 2.100that are transacting should be updated. For example, a user may replacethe contents of a data organism 2.100, or may update attributes and/orvalues of the data organism 2.100. If the contained data 2.108 is to beupdated, operation 2.712 updates the contained data 2.712 of appropriatedata organism 2.100, then proceeds to operation 2.714. Otherwise,operation 2.710 proceeds to operation 2.714, which generates one or moretransaction records 2.302. The transaction records 2.302 may include,for example, the identifiers 2.102 of other data organisms 2.100 in thetransaction 2.200, information such as a time of the transaction 2.00,use data of the transaction 2.00, and/or performance of the executedcomputing processes. The transaction records 2.302 may also include datasuch as use termination records (e.g., the termination report 4.508) andrecords of updates made to a use policy 4.108 controlling use of datawithin the data organism 2.100. Operation 2.716 determines whether eachof the data resources involved in the transaction 2.100 are controlledidentities within the datastore 1.114. If not, no further action may betaken for the particular data resource. If the particular data resourceis a controlled identity (e.g., it is a data organisms 2.100), thenoperation 2.718 deposits one or more transaction records 2.302 in thehastory 2.104 of the particular data resource that is a data organism2.100. Operation 2.720 then re-calculates a root hash 2.310 to evolve anidentity of the data organism 2.100.

To control copies within the datastore 1.114, a primary use of theevolving identity of data organisms 2.100 may be to control copyingand/or replication of the data within the datastore 1.114 such that dataretains uniqueness. FIG. 2.8 is a controlled copying process flow 2.800illustrating a process by which the copying transaction shown in FIG.2.5 may be controlled within the datastore 1.114 such that an originaldata organism 2.100 and a copied data organism 2.100 remain unique,according to one or more embodiments. Operation 2.802 specifies anoriginal data organism 2.100 to be a subject matter of a controlledcopying instance of the transaction 2.200. For example, a user mayspecify an original data organism 2.100 to be copied, as may be usefulfor versioning of the contained data 2.108 of the original data organism2.100. Similarly, a server could use the controlled copying transactionwhen distributing instances of the data organism 2.100 across severalphysical locations to track those instances. Operation 2.802 determinesthat the data organism 2.100 is a controlled identity within thedatastore 1.114 (e.g., it is a data resource including a hastory 2.104).Operation 2.806 generates a transaction record 2.302 of the transactionof the controlled copying of the original data organism 2.100, andoperation 2.208 copies the contained data 2.108 of the original dataorganism into a copied data organism 2.100. Other attributes and valuesof the original data organism 2.100, such as the ownership designation2.106. Operation 2.810 deposits the transaction record 2.302 in ahastory 2.104 of the original data organism 2.100 as a new block 2.304in a sequential chain 2.300 of the hastory 2.104 of the original dataorganism 2.100. Operation 2.812 re-calculates a root hash 2.310 of thehastory 2.104 of the original data organism 2.100 based upon the genesis2.303, to evolve the identity of the original data organism 2.100.Operation 2.214 deposits the transaction record 2.302 of the controlledcopying as a genesis block 2.303 of a hastory 2.104 of the copied dataorganism 2.100, the genesis block 2.303 added as a first block 2.304 ofa sequential chain 2.300 of the hastory 2.104 of the copied dataorganism 2.100. Operation 2.816 calculates the root hash 2.310 of thehastory 2.104 of the copied data organism 2.100 based upon the genesisblock 2.303, to initiate an identity of the copied data organism 2.100and distinguish the original data organism 2.100 from the copied dataorganism 2.100. Optionally, operation 2.818 may assign a new uniqueidentifier to the copied data organism 2.100 such that it can beuniquely addressed within the datastore 2.114 even as the root hash2.310 continues to change. In one or more embodiments, the new uniqueidentifier may be recorded in a transaction record 2.302.

In addition to the controlled copying transaction, the data resourcecontrol network 1.100 may be used to control ownership of and to effectan ownership transfer of the set of bits that comprise an original dataorganism 2.100. FIG. 2.9 is a data organism transfer process flow 2.900showing a process by which the data organism 2.100 of FIG. 2.1 may havean ownership transferred between a first user and a second user bychanging an ownership designation 2.106 and depositing a record of thetransaction (e.g., the transaction record 2.302) in a block 2.304 of thehastory 2.104 of the data organism 2.100, according to one or moreembodiments. Operation 2.902 specifies an original data organism 2.100to be a subject matter of an ownership transfer, the original dataorganism 2.100 comprising a unique identifier (e.g., an instance of theidentifier 2.302 of FIG. 2.1), an ownership designation 2.106, acontained data 2.108, and a hastory 2.104. For example, a user mayrequest to transfer ownership of one or more data organisms 2.100 thatthe user owns, and/or the arbiter 1.900 of FIG. 1.1 may transferownership to one or more other users. Operation 2.904 determines thatthe original data organism 2.100 is a controlled identity within thedatastore 1.114 by detected a hastory 2.102 associated with the originaldata organism 2.100. Operation 2.906 changes the ownership designation2.106 of the original data organism 2.100 to a new ownership designation2.106. Operation 2.108 generates a transaction record 2.302 of thetransaction 2.200 that is the ownership transfer of the original dataorganism 2.100, and operation 2.910 deposits the transaction record2.302 of the ownership transfer as a new block 2.304 in the sequentialchain 2.300 of the hastory 2.104 of the original data organism 2.100.For example, the transaction record 2.302 may be generated by thetransaction engine 1.110 and deposited by one or more record runtimeenvironments 1.116. Operation 2.912 re-calculates a root hash 2.310 ofthe hastory 2.104 of the original data organism 2.100 based upon the newblock 2.304, to evolve the identity of the original data organism 2.100.Upon the competition of process flow 2.900, the identity of the originaldata organism 2.100 will evolve to distinguish the original from copieswithin the datastore 1.114.

FIG. 2.10 is a second data organism transfer process flow 2.900illustrating a second process by which the ownership of the dataorganism 2.100 may be transferred by copying the data organism and:flagging an original of the data organism 2.100 as extinct; depositingan ownership transfer as a termination block 2.304 of the hastory 2.104of the original data organism 2.100; and/or, erasing the original dataorganism 2.100 from the datastore 2.114, according to one or moreembodiments. Operations 2.1002 and 2.1004 of FIG. 2.10 are similar tooperatons 2.902 and operations 2.904 of FIG. 2.9. Operation 2.1006copies the contained data 2.108 of the data organism 2.100 into a copieddata organism 2.100, similar to operation 2.808 of FIG. 2.8. Operation2.1008 through operation 2.1012 are similar to operation 2.908 through2.912 of FIG. 2.9. Operation 2.1014 effects one of the followingprocesses: flags the original data organism 2.100 as extinct; depositsthe transaction record 2.302 of the ownership transfer as a terminationblock 2.304 of the hastory of the original data organism 2.100; and/or,erases the original data organism 2.100 from the datastore 1.114. Thedata organism 2.100 flagged as distinct may be partitioned within thedatastore 1.114 and may have its ownership designation changed to anapplication program for creating auditing records. Operation 2.1016 maydeposit the transaction record 2.302 of the ownership transfer as agenesis block 2.303 of a hastory 2.104 of the copied data organism2.100, the genesis block 2.303 added as a first block 2.304 in thesequential chain 2.300. Operation 2.1018 calculates the root hash 2.310of the hastory 2.104 of the copied data organism 2.100 based upon thegenesis block 2.303, to initiate an identity of the copied data organism2.100 (e.g., as a new data resource of the datastore 1.114 having acontrolled identity). Similarly, the calculated root hash 2.310distinguishes the original data organism 2.100 (e.g., which may now bedeleted, and/or extinct) from the copied data organism 2.100. Finally,operation 2.1020 may assign a new unique identifier (e.g., an instanceof the identifier 2.102 that is unique within the datastore) to thecopied data organism 2.100.

FIG. 2.11 is a media use transaction view 2.1150 illustrating a videodata 2.1101 stored in a media file 2.1100 that is a first data organism2.100A, the media file 2.1100 an application resource for a second dataorganism 2.100B that is an application profile 2.1105 and the media file2.1100 accessed by a user associated with a user profile 3.106 that is athird data organism 2.100, according to one or more embodiments.Specifically, FIG. 2.11 is an example of a transaction 2.200 in which auser requests to utilize a first data organism 2.100 through use by anapplication program on a device 1.104 associated with a user. Forexample, the application program might be a music streaming player or anenterprise business contact application. The application program mayinclude an instance of the data resource and/or the data organism 2.100that is the application profile 2.1105, which may catalogue and/or listeach of the data resources and/or data organisms 2.100 available to theapplication program (e.g., as application resources). Using a userinterface (UI) of the application program, the user may select a videowhich the user would like to view. After an authentication of the userand/or the device along with authorization of the user, the mediationserver 1.102 may initiate a use transaction. For example, the usetransaction may be data use as shown in described in conjunction withFIG. 4.1 On conclusion of the use transaction, the resulting transactionrecord 2.302 may be deposited in each of the hastories 2.1104 of themedia file 2.1100, the user profile 3.114, and/or the applicationprofile 2.1105 to evolve the identities of each and create an auditingrecord of the transaction within each. The media file 2.1100 may betransacting with several user profiles 3.106 simultaneously. Forexample, there may be several open transaction records 4.404 within theterms engine server-side 1.112A as shown in FIG. 4.4. In one or moreembodiments, while each transaction 2.200 may open at a different time,a particular transaction 2.200 that closes (e.g., generates atransaction record 2.302) may be added to the file hastory 2.1104 first.Similarly, the application program may be simultaneously transactingwith hundred or thousands of user profiles 3.106 and/or other dataorganisms 2.100. As shown in FIG. 2.11, the transaction record 2.302 ofFIG. 2.11 is added as T49, while a different transaction 2.200 may stillbe pending (to tentatively have a transaction record 2.302 of thedifferent transaction 2.200 added as T50 within the application hastory2.1106).

The embodiments shown and described in conjunction with FIG. 2.1 throughFIG. 2.11 lead to a number of advantages. First, characterizing variousinteractions within the datastore 1.114 as transactions may allow for adistinguishing factor of data resources based on a developing history ofhow they transact. Hashing this developing history may form an immutablerecord of transactions associated with each data resource that is usableto distinguish the data resource from any other data resource within thedatastore 1.114. The result may be one or more data organisms 2.100,each of which have an evolving identity. In other words, the data withinthe datastore 1.114 is able to remain unique within the datastore 1.114and/or globally unique.

Computing processes may be defined to treat each of the data organisms2.100 differently. For example, a user who owns an original data 2.100resource may be able to determine constrained permissions for any copyof the set of bits of the original data organism 2.100. Specifically,the user may decide that an original document can only be modified byhimself or herself, whereas a copy may only have read-access. As aresult, the set of bits of original data resource may have increasedeconomic value being that the original data organism 2.100 includes asingle instance that may be permanently and/or immutably transferred(e.g., the ownership transfer transaction). In addition, the dataorganisms 2.100 are able to participate in agreements between one ormore users and/or parties wherein ownership is temporarily granted tothe arbiter 1.900. The ability to enforce such agreements may provide afoundation for marketplaces for data organisms 2.100 that may furtherincrease their monetary value.

Third, the root hash 2.310 may be used that two or more data organismswhich may include other similar identifying names (e.g., a file name)may contain different data. For example, one or more transactions may berecorded that change the contained data of a particular data organism2.100, thus changing the root hash 2.310 of the hastory 2.104 of theparticular data organism. Where the hash function additionally includesas an input one or more pieces of the contained data 2.108, it may alsoaffect the root hash 2.310. These advantages may markedly increaseefficiency of the datastore 1.114, for users, an enterpriseadministering the datastore 1.114, and/or developers buildingapplication programs that interact with the datastore 1.114.

In addition, use of one or more data organisms 2.100 within thedatastore 1.114 may improve ease of data analysis being that each dataresource and the transactions in which it has participated can beindividually identified and distinguished. For example, comparing roothashes 3.310 and/or transaction records 3.304 can be used tode-duplicate a dataset for analysis, and/or track a family of copiesspawned from an original instance of the data organism 2.100. The chainof blocks 2.300, each block 2.304 of which includes a transaction record3.302, creates an immutable accounting record of important interactionsin which the data organism 2.100 has participated. For example, thisauditing trail may be used to quickly and easily determine whichemployees of an enterprise used a particular data organism along withdetails of the use, which may be superior to re-constructing auditinglogs from an external scheme that attempts to build accounting recordsthat may be complex and require significant computing overhead. Usingthe immutable audit records associated with each of the data organisms2.100 increases security of the datastore 1.114 by making it easier todetect suspicious activity by analysis and/or examination of particulardata resources.

In addition to conducting transactions between data resources andmaintaining uniqueness of data organisms, the immutable records of oneor more data organisms 2.100 may be used to authenticate a user and/or adevice, including “just-in-time” authentication when a particular dataresource is requested. FIG. 3.1 is an authentication transaction network3.100 in which the device 3.104A completes a multi-factor login that mayestablish a secure communication channel over the network 1.101, thedevice 3.104A and/or the device 3.104B then submits an identity claim3.120 comprising a device root hash 3.602 of a device hastory 3.108 to aserver (e.g., the mediation server 1.102) for comparison to a profileroot hash 3.600 of a profile hastory 3.112 to validate the identityclaim 3.120, according to one or more embodiments. As a result, the roothash 3.310 may be used to define a fourth authentication factor based ona transaction history. This fourth authentication factor may act as avirtually un-forgeable, single-use identity credential that changesafter each identity claim by a user (e.g., the user 3.303) and/or adevice (e.g., the device 1.304A) is made. FIG. 3.1 further illustratesfour instances of a network 1.101A through 1.101E, a server 3.102 and aserver 3.106, a user 3.303, a device 3.104A and a device 3.104B, adevice hastory 3.108, a device profile 3.110, a profile hastory 3.112, auser profile 3.114, and an identity claim record 3.116. Theauthentication transaction network 3.100 may be implemented as a partof, or independently of, the data resource control network 1.100. Forexample, in one or more embodiments the server 3.102 may be themediation server 1.102 of FIG. 1. Similarly, the server 3.106 may be theserver 1.106A and/or the usermode microservice 1.140. The device 3.104Aand 3.104B may be the device 1.104A and the device 1.104B, respectively.Each of the networks 1.101A through 1.101E may be similar or different.In one preferred embodiment, network 1.101A is the internet or a firstWAN, network 1.101B is a Bluetooth® connection, a tether (e.g., a wiredconnection) a LAN, and/or a near field communication connection, thenetwork 1.101C is the internet or the first WAN, the network 1.101D is aLAN and/or a second WAN behind a firewall, and the network 1.101E is theinternet or the first WAN. Where two or more of the network 1.101A,1.101C and 1.101E are the same, preferably a first channel is used tocommunicate between the device 3.104A and server 3.102, a second channelis used between device 3.106 and device 3.104B, and a third channel tocommunicate between the device 3.104A and server 3.106. The device3.104A and the device 3.104B may be a desktop computer, a smartphone(e.g., an iPhone®, a Galexy® phone, an Android® phone, a Windows®Phone), a notebook computer, a different server, a piece of wearabletechnology (such as a smart watch like an iWatch), and/or a tabletdevice (such as an iPad). In one preferred embodiment, the device 3.104Ais the desktop computer and the device 3.104B is the smartphone. Inanother preferred embodiment the device 3.104A is a smartphone (e.g., aniPhone®) and the device 3.104B is a piece of wearable technology (e.g.,an iWatch®).

In FIG. 3.1, the device 3.104A may request access to a service providedby a server, for example the datastore 1.114. The service may also be,for example an application running on the server. The device 3.104A mayengage in a multi-factor login 3.118, as shown and described inconjunction FIG. 3.2 and FIG. 3.3. The multi-factor login 3.118 mayestablish one or more secure channels of communication (e.g., the firstchannel over network 1.101A) by verifying that the one or more of thechannels are not being intercepted by a third party (e.g., a“man-in-the-middle” attack) after which a cryptographic shared secretmay be utilized, for example using a Diffie-Hellman key exchange toestablish an encrypted channel. Independent of the multi-factor login,the device profile 3.110 makes an identity claim 3.120 against the userprofile 3.114 to authenticate the device 3.104A and/or the user 3.303 ofthe device 3.304A. The identity claim 3.120 may be transmitted inaddition to one or more of the tokens of the multi-factor login 3.118.The identity claim 3.120 comprises a device root hash 3.602 of a devicehastory 3.108, as shown in FIG. 3.6. The device root hash 3.602 may betransmitted over one of the networks 1.101 as part of the identity claim3.120 to be compared to a profile root hash 3.600 of a profile hastory3.112, as shown in conjunction with FIG. 3.3 through FIG. 3.10. In thetransaction record generation 3.130 the device 3.104A and/or the device3.104B may generate an identity claim record 3.116 of the authorizationrequest. The identity claim record 3.116 may be similar to thetransaction record 2.200 of FIG. 2.2 in nature, but may be generated bythe device 1.104A and/or the device 1.104B. The identity update 3.150comprising data of the identity claim record 3.116 may then betransmitted through one or more channels of communication to the server3.106 in the identity update 3.150 for assembly into an identical and/orvirtually identical instance of the identity claim record 3.116, theassembly occurring in the transaction record generation 3.160. Theserver 3.106 adds the transaction record to a pending and/or forminginstance of the block 2.304 of the profile hastory 3.112 in the profilehastory update 3.170. The root hash of the device hastory 3.108 and theroot hash of the profile hastory 3.114 may be re-calculated. The serverupdate verification 3.180 may then be transmitted to the device 3.104Bas an acknowledgment of receipt and assembly of the identity claimrecord 3.116. Similarly, the device update verification 3.185 mayacknowledge receipt of the server update verification 3.190. The deviceand the server 1.106 may then proceed with the hastory commit 3.190 andthe profile hastory commit 3.195. If either of the server updateverification 3.180 or the device update verification 3.185 are notproperly received, the authentication transaction may be rolled backsuch that the neither the profile hastory 3.112 or the device hastory3.108 evolve. In such case the device may be required to re-submit asecond identity claim 3.120 in a second authentication attempt. Althoughnot shown in the embodiment of FIG. 3.1, an optional transaction with anapplication profile (e.g., the application profile 2.1105 of FIG. 2.11)may occur between the user profile 3.106 and an application hastory(e.g., the application hastory 2.1106), as shown in the process flow ofFIG. 3.8. In such case an identity update 3.150 comprising data usableto assemble a resulting transaction record 2.302 may be sent from theserver 3.106 and/or a different server to the device 1.104B, with thedevice assembling the resulting truncation record 2.302 before updatingthe device hastory 3.108 and verifying the update with the server 3.106.Additionally, although shown stored on the device 3.104B, the deviceprofile 3.110 may alternatively or in addition reside on the device3.104A.

FIG. 3.2 is a multi-factor login process flow 3.200 of the multi-factorlogin 3.120 of FIG. 3.1, according to one or more embodiments. Operation3.202 receives a login request through the network 1.101, the loginrequest received from a first device (e.g., the device 3.104A of FIG.3.1) referred to in FIG. 3.2 as ‘device A’. The login request may begenerated from a particular application program on the first device suchas an enterprise application where the first device is a desktopcomputer, or a streaming music app where the first device is a mobiledevice. The login request may include data identifying the first device,the application program, and/or a user of the first device. A firstserver, referred to in FIG. 3.2 as ‘server A’ may generate a token X inoperation 3.204 and return the token X through the network 1.101 to thefirst device in operation 3.206. The application program generating thelogin request and/or a separate application program referred to as aprofile process (e.g., an application program for identity management)may then generate a token Y in operation 3.208.

In operation 3.210, the first device transmits the token X and the tokenY through the network 1.101B to a second device (e.g., the device 3.104Bof FIG. 3.1), referred to as a ‘device B’ in FIG. 3.2. The token Y maybe an identifier of the first device and token X may include dataidentifying the user of the first device. The network 1.101B can be, forexample, a Bluetooth® or near-field communication connection between thefirst device and the second device. In operation 3.212, the seconddevice determines whether token Y is associated with a user profile(e.g., the user profile 3.114) of the user of the first device. If not,operation 3.214 generates and error message and/or terminates themulti-factor login 3.118. If a profile association is determined, inoperation 3.216 the second device transmits the token X and the token Yto a second server (e.g., the server 3.106), referred to in FIG. 3.2 as‘server B.’ The transmission between the second device and the secondserver may occur through the network 1.101 over a separate channel thana channel carrying communication between the first device and the firstserver. Although now shown, data of the identity claim 3.120 may betransmitted during this operation as well. In operation 3.218, thesecond server may determine whether the token Y is associated with avalid user profile. If not, operation 3.218 may proceed to operation3.214. If there is a valid association, operation 3.218 may proceed tooperation 3.220, in which the second server transmits token X to thefirst server through the network 1.101 (e.g., a LAN and/or a WAN behinda firewall).

FIG. 3.3 is the multi-factor login process 3.200 of FIG. 3.2 continuedas the multi-factor login process 3.300, according to one or moreembodiments. After the first server receives the token X from the secondserver, the first server determines according to operation 2.222 whetherthe first server issued the token X and whether the token X remainsvalid (e.g., has not expired). If the token X received by the firstserver was not issued (e.g., it is a third token Z of unknown origin)and/or the token X has expired, operation 2.222 may proceed to generatean error message and terminate login in accordance to operation 3.214.Otherwise, in accordance with operation 2.224, the first servertransmits data to the second server to indicate that a token was issuedto a particular user by transmitting an identifier of the particularuser. In operation 2.226, the second server verifies that a user profileis associated with the identifier of the particular user, and if notproceeds to operation 3.214. If the second server determines that a userprofile is associated with the particular user, the second servertransmits data of the user profile of the particular user to the firstserver in operation 2.228. In accordance with operation 2.230, the firstserver then transmits a login token to the first device. As a result, asecure channel and/or a secure socket between the first device and thefirst server may then be established. The device and the server mayexchange cryptographic keys in a Diffie-Hellman key exchange that may bea specific method for securely exchanging the cryptographic keys over apublic communication channel (e.g., the network 1.101).

FIG. 3.4 is an authentication process flow 3.400 illustrating a processby which the device 3.104A of FIG. 3.1 may be securely authenticatedusing un-forgeable identity credentials that define a fourthauthentication factor based on a transaction history of the device(e.g., the device 3.104A, the device 3.104B) and a user profile (e.g.,the user profile 3.114) associated with the device, according to one ormore embodiments. Operation 3.402 receives an authentication requestfrom a first device (e.g., the device 3.104A) to access a service and/ora datastore (e.g., the datastore 1.114). For example, the authenticationrequest may be generated from an application program on the device3.104A. Operation 3.404 receives an identity claim 3.120 from the firstdevice and/or a second device (e.g., the device 3.104B) associated withthe first device (e.g., under the control of the same user and/orsharing LAN and/or a Bluetooth® connection), the identity claim 3.120comprising a device root hash 3.602 computed by a hash function. Thehash function may use inputs comprising a previous transaction record3.402 along with a previous hash value 2.306 of a hastory of the device,referred to as a device hastory 3.108. The identity claim 3.120 in oneor more preferred embodiments is made by the device 3.104B over achannel that different than a primary channel of communication betweenthe device 3.104A and the server 3.102. The primary channel, forexample, may be used by the application program to receive one or moredata resources (e.g., by the data stream 4.180 of FIG. 4.1). Operation3.406 retrieves data of a user profile 3.114 associated with the firstdevice 3.104A and/or the user 3.303 of the first device 3.104A, the userprofile 3.114 including a profile hastory 3.112 including a profile roothash 3.600 computed by the hash function using inputs comprising theprevious transaction record 3.402 along with a penultimate hash value2.308 of the profile hastory 3.112. Operation 3.408 extracts the profileroot hash 3.600 from the user profile 3.114 associated with the device3.104A and/or the user 3.303 of the device 3.104A. Operation 3.410compares the device root hash 3.602 of the device hastory 3.108 with theprofile root hash 3.600 of the profile hastory 3.112 to verify anidentity of the device 3.104A and/or the user 3.303 of the device3.104A. Operation 3.412 determines that the device root hash 3.602 andthe profile root hash 3.600 are identical. Finally, operation 3.414validates the identity of the device 3.104A and/or the user 3.303 of thedevice 3.104A.

FIG. 3.5 is an identity evolution process flow 3.500 that illustrates aprocess for evolving both the profile hastory 3.114 and the devicehastory 3.108 in parallel to synchronize their identities for comparisonin a subsequent authentication request, according to one or moreembodiments. Operation 3.502 receives data usable to assemble atransaction record of the identity claim 3.120 (referred to as theidentity claim record 3.116 in FIG. 3.1) generated by the device 3.104A.In one preferred embodiment, operation 3.502 receives portions of thedata usable to assemble the identity claim record 3.116 from two or moresources and/or over two or more channels. For example, a first portionof data usable to assemble the identity claim record 3.116 may bereceived over a first channel (e.g., a first channel of the network1.101E of FIG. 3.1) and a second potion of data usable to assemble theidentity claim record 3.116 may be received over a second channel (e.g.,the second channel of the network 1.101C of FIG. 3.1). In such case, thefirst portion of the data usable to assemble the identity claim record3.116 may be transmitted from the device 3.104B to the device 3.104A forre-transmission to the server 3.106 (e.g., through the network 1.101E ofFIG. 3.1). Operation 3.504 assembles the transaction record of theidentity claim (e.g., the identity claim record 3.116) generated by thedevice 3.104B. Operation 3.504 assembles the identity claim record 3.116to yield an identical instance of the identity claim record 3.116generated on the device 3.104B. For example, the identity claim record3.116 may be assembled according to a procedure that will yield avirtually identical identity claim record 3.116 as produced on thedevice 3.104B. Operation 3.506 deposits the transaction record of theidentity claim in a new block 4.404 of the sequential chain of blocks4.400 of a profile hastory 3.112. For example, the data of the assembledidentity claim record 3.116 may be placed into the data structure of thesequential chain of blocks 4.400 as an instance of a transaction record2.302 of FIG. 4.2. The data structure, according to one or moreembodiments, may be the hash chain of FIG. 2.3 or the Merkle tree ofFIG. 2.4. Operation 3.508 computes a new profile root hash (e.g., a newinstance of the root hash 2.310 of FIG. 3.6) with a hash function usingas inputs the profile root hash (e.g., the profile root hash 3.600 ofFIG. 3.6) and the transaction record of the identity claim (e.g., theidentity claim record 3.116), to evolve the identity of the user profile3.114. Operation 3.510, 3.512 and 3.514 may implement a two-phase commitprocess. The two phase commit process may be a distributed algorithmthat coordinates a distributed atomic transaction on whether to commitor abort (e.g., roll back) the computation of the new profile root hash3.600 and/or the new device root hash 3.602. Specifically, operation3.510 transmits a verification of an identity update of the user profile3.114 (e.g., server update verification 3.180 of FIG. 3.1) to the firstdevice (e.g., the device 3.104A) and/or the second device (e.g., thedevice 1.104B). The verification of the identity update may include asimple indicator that assembly of the identity claim record 3.116 wassuccessful. The indicator may itself include a different hash value of adifferent hash function that may selectively hash only the data of theassembled identity claim record 3.116. The verification of the identityupdate may also include additional data such as a time at which theidentity claim record 3.116 was assembled and/or added to the profilehastory 3.112. Following transmission of the verification of theidentity update, e.g., by the server, the device 3.104A and/or thedevice 3.104B may likewise generate a verification of receive of theverification of the identity update made by the server and/or averification of an identity update of the first device and/or the seconddevice (e.g., device update verification 3.185 of FIG. 3.1). Operation3.512 then receives a verification of an identity update of the firstdevice 3.104A and/or the second device 3.104B. Operation 3.514 commitsthe new profile root hash 3.600 of the profile hastory 3.113, tosynchronize the identity of the user profile 3.114 with the identity ofthe device profile 3.108 of the first device (e.g., the device 3.104A)and/or the second device (e.g., the device 3.104B).

FIG. 3.6 is a profile hastory and device hastory view 3.650 illustratinga detailed view of the sequential chain of blocks 2.300 of the profilehastory 3.112 with transactions records 2.302A through 2.302D includinga profile data 3.604, an identity claim record 3.116B of a logintransaction, an identity claim record 3.116C of a data use transaction,and an identity claim record 3.116C of a log out transaction, accordingto one or more embodiments. FIG. 3.6 shows an instance of the hastory ofFIG. 2.3 usable for the authentication process and/or the real-timeauthentication process associated with an authorization request, asshown and described in conjunction with FIG. 4.1. The genesis block2.303A may include, for example, the transaction record 2.302A includingthe profile data 3.604 used in creating the user profile 3.114associated with the hastory 3.112 of FIG. 3.6. The hash value 2.306A mayinclude as inputs the data of the transaction record 2.302A such as theprofile data 3.604. The hash value 2.306A, the genesis block 2.303Aand/or any other data of the profile hastory 3.112 may be communicatedto the device 3.104A and/or 3.104B to initiate the device hastory 3.108,setting up an initial synchronization between the identity of the userprofile 3.114 and the device profile 3.110. The device profile 3.110 mayrepresent a user (e.g., the user 3.303 of FIG. 3.1) and/or the device3.104A and/or the device 3.104B.

A set of blocks 2.304B through 2.304D may be added the after genesisblock 2.303A for each of several identity claims (e.g., one or more ofthe identity claims 3.120 of FIG. 3.1) made by the device profile 3.110against the user profile 3.114. For example: the identity claim record3.116B may be added as the transaction record 2.302B when the user 3.303and/or the device 3.104A logs in to the server 3.102 (e.g., to use aservice and/or the datastore 1.114): the identity claim record 3.116Cmay be added when the user 3.303 and/or the device 3.104A submits anauthorization request to use a data resource of the datastore 1.114(e.g., the authorization request of FIG. 3.7 and/or the use request4.130 of FIG. 4.1); and, the identity claim record 3.116D may be addedwhen the user 3.303 and/or the device 1.104A completes a log outtransaction from the server 3.102 and/or the datastore 1.114. A mostrecently computing hash value of the profile hastory 3.112 such as thehash value 2.306D is referred to as the profile root hash 3.600 whichmay be analogous to the root hash 2.310 of FIG. 2.3. The profile roothash 3.600 is computed using a hash function with inputs comprising amost recent transaction record 2.302 (which in the embodiment of FIG.3.6 is the transaction record 2.302D) along with a penultimate hash2.308 (which in the embodiment of FIG. 3.6 is hash value 2.406C). When anew transaction record (e.g., a transaction record 3.402E, not shown inthe embodiment of FIG. 3.6) is added to the sequential chain of blocks2.300, the profile root hash 3.600 becomes a new instance of thepenultimate hash 2.308, and the penultimate hash 2.308 prior to additionof the new transaction record ceases to be an instance of thepenultimate hash 2.308.

The device profile 3.110 comprising the device hastory 3.108 is storedon the device 3.104A and/or the device 3.104B. In one embodiment, thedevice hastory 3.108 may include a complete set of blocks 2.304 back tothe genesis block 2.303A. However, as shown in FIG. 3.6 the devicehastory 3.108 may be an attenuated version of the profile hastory 3.112that includes only the most recent transaction record 3.402 (here, thetransaction record 3.402D) along with the most recent hash value(referred to within the device hastory 3.108 as the device root hash3.602). The profile root hash 3.600 and the device root hash 3.602 areidentical when the profile hastroy 3.112 and the device hastory 3.108are synchronized (e.g., the identities of user profile 3.114 and thedevice profile 3.110 are aligned). The device 3.104A and/or the device3.104B may generate a new instance of the transaction record 3.402 (forexample a transaction record 3.402E, not shown in the embodiment of FIG.3.6) at the time that the user 3.303, the device 3.104A and/or thedevice 3.104B make an identity claim 3.120 against the user profile3.114 according to the identity update 3.150. The device 3.104A and/or3.104B then transmits data of the transaction record of the identityclaim 3.120 through one or more channels to be re-assembled and placedin a new block 2.304 of the profile hastory 3.112. Although not shown inthe figures, in one or more embodiments a “reverse” identity update(e.g., similar to the identity update 3.150) may be transmitted from oneor more servers that generated the identity claim record 3.116 to thedevice 3.104A and/or the device 3.104B.

FIG. 3.7 is an real-time authentication process flow 3.700 illustratinga process by which the device 3.104A of FIG. 3.1 can submit tojust-in-time authentication in association with an authorization requestto utilize a data resource of the datastore 1.114 of FIG. 1.1, accordingto one or more embodiments. Operation 3.702 receives an authorizationrequest, such as the use request 4.130 of FIG. 4.1, from a first device(e.g., the device 3.104A) to utilize a data resource within a datastoreof a server (e.g., the server 1.106A of FIG. 1.1). For example, theutilization of a data resource may include downloading a file, deletingdata of the data resource, or having data of the data resourcetemporarily streamed to the device 3.104A for temporary use. Thetemporary use may include continuous monitoring and control of the dataresource control network 1.100 as shown in the embodiments of FIG. 4.1through FIG. 4.12. Operation 3.704 receives an identity claim 3.120 fromthe first device and/or a second device (e.g., the device 3.104B of FIG.3.1) associated with the first device, the identity claim 3.120including a device root hash 3.602 computed by a hash function dependenton a dataset that includes one or more transaction records (e.g., thetransaction records 2.302D of FIG. 2.4 and/or FIG. 3.6) of previousidentity claims 3.120. Specifically, addition of an additionaltransaction record 2.302 and/or re-arrangement of an order of thetransaction records 2.302 result in virtually unpredictable changes inthe device root hash 3.602 and/or the profile root hash 3.600. Inoperation 3.706, a user profile 3.114 associated with at least one ofthe first device (e.g., the device 3.104A) and a user (e.g., the 3.303)of the first device is retrieved, the user profile including a profilehastory 3.114. Operation 3.708 extracts the profile root hash 3.600 fromthe user profile 3.114 associated with the first device and/or the userof the first device. Specifically, for example, the server 3.106 may usecomputing processes to copy and place into physical memory a most recentinstance of the hash value 2.306 of the chain of blocks 2.300 of theprofile hastory 3.112. Operation 3.708 may function similarly tooperation 3.410 of FIG. 3.4 to compare the device root hash 3.606 withthe profile root hash 3.600 of the profile hastory 3.112 to verify anidentity of the first device and/or the user of the first device.Operation 3.712 determines that the device root hash 3.602 and theprofile hash value 3.600 are identical. Thereafter, the user and/or thefirst device may be authenticated, which may occur rapidly (e.g., withinmilliseconds) in association with authorizing utilization of the dataresource may be authorized. The sever 3.102 and/or 3.106 may thenproceed with an authorization process for example operation 3.714 thatevaluates one or more permissions of the data resource in relation tothe user profile 3.114 (such as read access, write access, or in one ormore preferred embodiments the use controls shown and described inconjunction with FIG. 4.1 through FIG. 4.12). While the use of theauthentication process shown in FIG. 3.7 may be used for real-timeauthentication in association with an authorization request, in one ormore embodiments the authentication process may also result in atradition token (e.g., an authentication authorization token) that maybe communicated to the device 3.104A and/or the device 3.104B for use ina session of use with the datastore 1.114 and/or other services of oneor more of the servers (e.g., the mediation server 1.102).

FIG. 3.8 is an application identity evolution process flow 3.800 showinga process whereby an identity claim 3.120 may be made by the device3.104A and/or the user profile 3.114 against an application profile2.1105 of an application program, according to one or more embodiments.The application program may be any computer program such as anappliance, server software, consumer software such as a computer orsocial network app, an enterprise software application such as acalendar app and/or a word processing app. Within the datastore 1.114the application program may be represented by an application profile2.1105 including data about the application program in addition to acatalogue of data resources that are available to the applicationprogram. When utilization of a data resource is requested by the user(e.g. the user 3.303) and/or the device (e.g., the device 3.104), theserver 3.106 may determine whether to make an identity claim (e.g., theidentity claim 3.120) from the user profile 3.114 against theapplication profile 2.1105 to determine whether the application programhas previously interacted with the user 3.114 and/or the device. Inoperation 3.802, an application profile 2.1105 is referenced, theapplication profile 2.1105 associated with the application program forwhich a protected resource is an application resource. An applicationresource is an instance of the data resource and/or the data organism2.100 that is available to be addressed, accessed, and/or used withinthe datastore 1.114. Operation 3.804 resolves an identity claim of theuser profile in relation to the application profile by determining thatthe user profile 3.114 and the application profile both include atransaction record 2.302 that is identical within the profile hastory3.112 and the application hastory. In contrast to the identity claim3.120 of FIG. 3.1, the identity claim of process flow 3.800 may or maynot utilize in an instance of the hash value 2.306 in the identity claimagainst the application profile 2.1105. Rather, data and/or contents ofone or more transaction records 2.302 of both the application profile2.1105 and the user profile 3.114 are compared to determine that bothhave previously transitioned. If they have not previously interacted,for example, additional permissions may be required by the data resourcecontrol network 1.100. Operation 3.806 deposits a transaction record2.302 of the second identity claim in an application hastory 2.1106 ofthe application profile 2.1105, and operation 3.808 computes anapplication root hash of the application hastory 2.1106 with thetransaction record 2.302 of the identity claim made against theapplication profile, to evolve the identity of the application profile2.1105. For example, operations 3.806 and 3.808 may be also shown anddescribed in the transaction of FIG. 2.11. Finally, if the profilehastory 2.114 is updated as a result of the identity claim against theapplication profile 2.1105, operation 3.810 transmits to the device3.104A and/or the device 3.104B data usable to assemble a transactionrecord of the identity claim (e.g., the identity claim record 3.116) ofthe user profile 3.114 in relation to the application profile 2.1105.Additional verification similar to operations 3.510 and 3.512 of processflow 3.500 may occur before commitment of the identity update 3.150 ofthe device 3.104A, the device 3.104B and/or the user profile 3.114.

FIG. 3.9 is a profile attack detection process flow 3.900 showing aprocess that invalidates forged identify credentials if the identitycredentials are copied from the device 3.104A and/or the device 3.104Bbased on the evolution of the device hastory 3.108 and the profilehastory 3.112, according to one or more embodiments. Operation 3.902receives an authentication request and/or an authorization request froma device (e.g., the device 3.104A) to login and/or to utilize a dataresource within a datastore of a server (e.g., the server 3.102).Operations 3.904 receives an identity claim 3.120 from the device 3.104Aand/or a device 3.104B including a device root hash 3.602. Operation3.906 through 3.910 may occur similarly to operations 3.406 through3.410 of FIG. 3.4, respectively. However, in contrast to the embodimentof FIG. 3.4, operation 3.412 determines that the device root hash 3.602and the profile root hash 3.600 are different (e.g., not virtuallyidentical such that they will result in a same hash value when used asan input to a particular hash function). As a result, operation 3.914may deny the authentication request and/or the authorization request andoperation 3.916 may optionally lock the user profile 3.114 to preventprospective authentication attempts by the user 3.303, the device3.104A, and/or the device 3.104B. In the context of an enterprise, forexample, an administrator of the datastore 1.114 may have to becontacted to unlock the user profile 3.114, or an additional identitycredential submitted over a different secure channel.

FIG. 3.10 is a forged credential detection view 3.1050 showing a failedidentity claim 3.1002 by an impersonator who cloned credentials from adevice 3.104A (e.g., such as a smartphone) of user 3.303, the failedidentity claim 3.1050 identified and optionally responded to by theprocess of FIG. 3.9, according to one or more embodiments. A section ofa chain of blocks 2.300 of the profile hastory 3.104 is shown in FIG.3.10, the chain of blocks 2.300 originating at an genesis block 2.304(not show in the embodiment of FIG. 3.10). A device hastory 3.108A is inan initial synchronized state with the profile hastory 3.104 after boththe device 3.104 and the server 3.106 commit the transaction record3.402A ('T55′). At the initial state, both the device root hash 3.602and the profile hash 3.600 are equal to the hash value 2.306A. The hashvalue 2.306A is that included as inputs to a hash function a previousinstance of the have value 2.306 (“H54”) along with the transactionrecord 3.402A (“T55”). After the initial state, the user 3.303 and/orthe device 3.104A may make an identity claim 3.120B against the profilehastory 3.104 by transmitting the device root hash 3.602 (then the hashvalue 2.406A) to the server 3.106 to be compared to the profile roothash 3.600 stored in a user profile 3.114. One or more servers (e.g.,the server 3.106 of FIG. 3.1) may then effect one or more additionalprocesses of the process flow 3.400 of FIG. 3.4, including the serverupdate verification 3.180B.

After the parallel synchronization of the device hastory 3.102A and theprofile hastory 3.104 to result in block 2.304B, an impersonator 3.1001(for example, a hacker) may find some way to copy a memory of the device3.104A through the credential cloning 3.1000. The memory may is copiedonto a device 3.104X having a copied instance of the device hastory3.108A referred to as the device hastory 3.108X. Additionally, theimpersonator 3.1001 may have through some other means obtained theidentity credentials of the device 3.104A that may include the deviceroot hash 3.602 and stored them on the device 3.104X. At the time of thecredential cloning 3.1000 in FIG. 3.10 the device root hash 3.602 isequal to the hash value 2.306B.

After the credential cloning 3.1000, either the device 3.104A or device3.104X may succeed at an identity claim 3.120A. Where the user 3.303makes the identity claim 3.120C, the identity of the profile hastory3.104 will evolve after addition of the block 4.404C. The impersonator3.1001 may then make an identify claim 3.104 that will fail (e.g., thefailed identity claim 3.1002) due to mismatch of the hash value 3.406Bwith the hash value 3.406C, for example per the process flow 3.900 ofFIG. 3.9. The user 3.303 and/or an administrator of the datastore 1.114may then be alerted as to the failed identity claim 3.1002. The userprofile 3.114 may also optionally be locked until an administrator ofthe datastore 1.114 can determine the cause of the failed identity claim3.1002. On the other hand, where the impersonator 3.1001 makes theidentity claim 3.120C before the user 3.303, the user 3.303 may bealerted the next time the user 3.303 and/or the device 3.104A attemptsto transact with the profile hastory 3.104. Additional processes maydetermine when to lock the user profile 3.114 as opposed to allowcontinued identity claims 3.120 to be made against the profile hastory3.104 (in which case alerts may be generated and communicated to theuser 3.303 and/or an administrator of the datastore 1.114. According tothe embodiment of FIG. 3.10, the identity credentials (e.g., the deviceroot hash 3.602) may act as a single-use identity credential usable forrapid authentication. The authentication transaction network 3.100 maylock out impersonators 3.1001 due to the parallel synchronized update ofthe identity of the device hastory 3.108A and the identity of theprofile hastory 3.112.

The authentication transaction network 3.100 and associated processes asshown in the embodiments of FIG. 3.1 through FIG. 3.11 represents anumber of advances in the first ‘A’ of the triple AAA framework,Authentication. To what may be considered the three standardauthentication factors (what the user “knows,” what the user “has,”and/or what the user “is”), the authentication process disclosed adds afourth authentication factor, what the “has been” or what the user“was.” This fourth authentication factor may be based on a history ofinteraction in between the user and/or a device, that history oftransaction records forming the immutable record of transactions in thehashed history, referred to as a hastory. As a result, theauthentication process may have a higher degree of certainty whenverifying an identity and/or validating an identity claim of the useand/or the device.

At the same time, the datastore and/or services offered by one or moreservers may retain two-factor authentication while not requiring eitherpasswords (e.g., something the user knows) or biometrics (something theuser has). Rather, the two-factor authentication may comprise what theuser “has” (e.g., a first device such as a smartphone) and what the user“was” (e.g., the hastory that may be stored on both the first device, asecond device, and/or one or more servers). The result may be africtionless authentication process, for example where a user brings afirst device under the user's control (e.g., a smartphone) into a closeproximity with a second device (e.g., a desktop computer, a tablet) onwhich the user would like to access the datastore or a data resource.

In addition, use of the root hash of the hastory as an identitycredential may eliminate general use and/or dependence passwords thatmay be especially susceptible to social engineering attacks. Forexample, a social engineer may have to possess one or more devices inorder to authenticate in place of the user, unlike a password which oncehanded out to a social engineer may not be changed and allow access ofboth the user and the social engineer without detection.

The root hash of the hastory additionally increases security of thedatastore by allowing the identity credentials of the device to besingle use. As disclosed, the root hash may be communicated out-of-bandfrom a primary channel used to communicate with the datastore, forexample to request and receive data of a data resource, which maymarkedly decrease chances that the identity credentials will beintercepted. However, in the event identity credentials are obtained byan impersonator, for example through interception of the network orcloning of the device, the root hash may still represent an advantage ofa session token and/or other identity credentials. Specially, animpersonator will be barred from interaction with the datastore if thetrue user makes even one more additional identity claim to a server ofthe authentication transcation network 3.100.

Due to a relatively rapid comparison between the device root hash andthe profile root hash, the authentication transaction network 3.100 mayreduce computing overhead and permit real-time and/or “just-in-time”authentication that permits the device and/or a user of the device to bere-authenticated after a short period of time (a few seconds, a minute).Therefore, optionally authentication may occur with each interactionbetween the device 3.104A and/or the server 3.102, for example eachrequest for a data resource and/or protected resource. As a result, itmay be technically feasible set permissions for individual dataresources based on an identity of the user and/or the device, permittingfine grain control of data resources within the datastore. For example,the data resource control network 1.100 may be able to scale to a largenumber of user of an enterprise (e.g., customers, employees) while stilldefining access and/or use controls of each individual data resourcewhen necessary, rather than broad and potentially over-permissioned usergroups. Data resources may also be particularly permission, reducingunder-permissioning. The user requesting access to the datastore,utilization of data resources, and/or other electronic services isauthenticated with a higher degree of certainty due to use of a fourthauthentication factor, a hashed history forming an immutable transactionrecords in which the user participated.

FIG. 4.1 is an authorization network 4.100 showing a set of servers(including the mediation server 1.102, the key server 1.108, thedatamode microservice 1.130, and the usermode microservice 1.140) usableto authorize use of a protected resource by a device 1.104 and controluse of the protected resource on the device 1.104 using a terms engine1.112 (including a terms engine server-side 1.112A and a terms enginedevice-side 1.112B) according to a use policy 4.108, according to one ormore embodiments. The authorization network 4.100 may operate incontrast to a server implementing a datastore with a hierarchical filesystem that may merely control access to data resources. Although notshown for clarity, each of the arrows in FIG. 4.1 through FIG. 4.3represent communication over one or more instances of the network 1.101(e.g., the internet, a WAN, a LAN), and each of the servers (e.g., themediation server 1.102, the usermode microservice 1.141) and the device1.104 are communicatively coupled by one or more instances of thenetwork 1.101. The authorization network 4.100 may be implemented as apart of the data resource control network 1.100, work in coordinationwith the authentication transaction network 3.100, and/or may be adistinct operating environment.

In FIG. 4.1, a device 1.104 transmits a use request 4.130 to a mediationserver 1.102 to use a protected resource 4.102 of a datastore 1.114(shown as the subject datastore 1.131 in FIG. 4.1). The protectedresource 4.102 may be stored in a data node 4.104 of a non-hierarchicaldata structure 1.114, and in one or more embodiments, a security node4.110 may reference the data node. The use request 4.130 may include oneor more pieces of data that identify which protected resource 4.102 isrequested by the device 1.104. For example, the use request 4.130 mayinclude a security node identifier 4.112 (referred to as the SNID 4.112in FIG. 4.1). A use policy retrieval 4.135 may be effected by themediation server 1.102 to retrieve a use policy 4.108 associated withthe protected resource 4.102. The use policy 4.108 may be stored, forexample, within the security node 4.110, and therefore retrieved by theSNID 4.112 that may be submitted in the use request 4.130. As shown anddescribed in conjunction with FIG. 3.1 through FIG. 3.10, the device1.104 and/or a user of the device 1.104 may make an identity claim 3.120against a user profile 3.114 associated with the device 1.104 and/or auser of the device 1.104. The identity claim 3.120 may be to effectjust-in-time authenticate the user and/or the device 1.104 as part of arequest as described in conjunction with FIG. 3.7. The meditation server1.102 may open a transaction record of a use transaction and evaluatethe use policy 4.108 to determine whether an authorized context for useof the protected resource is present based on a set of contextual valuesthat may be gathered and compared to one or more reference values by themediation server 1.102 when executing the use policy 4.108. For example,the mediation server 1.102 may evaluate a state dataset (e.g., the statedataset 4.200 of FIG. 4.2) from the device 1.104 to determine that thedevice 1.104 is, for example, within an authorized geospatial locationand the use request 4.130 occurs within a permissible time. Themediation server 1.102 may then authorize access to the protectedresource 4.102 and generate a set of use terms 4.116 that are deliveredto the device 1.104 to be used by a terms engine device-side 1.112B thatmonitors and enforces ephemerality of data of the protected resource4.102.

The authorization network 4.100 may then directly deliver the protectedresource 4.102, as described below or in one or more preferredembodiments may then use a key system to provide a level of indirectionin redemption of a use key 4.118 to obtain data of the protectedresource 4.102. The key system may allow for dynamic load balancing andincrease security by permitting control of one or more segments of thedata of the protected resource 4.102. In the key implementation, themediation server 1.102 may generate a set of one or more use keys 4.118and append a protected resource identifier 4.106 (e.g., as a value ofthe key) to each of the set of one or more use keys 4.118 to generateone or more key-identifier pairs 4.120 (e.g., key-value pairs). The keymay be a unique set of alphanumeric characters generated by on or moreof the servers. The key-identifier pairs 4.120 may be deposited in thekey server 1.108 in a key deposition 4.140 and each may be associatedwith an expiration condition 4.122. The use key 4.118 may be returned tothe device 1.104 in the use key return 4.150. The device 1.104 thensubmits the use key 4.150 in the redemption request 4.160. Theredemption request 4.160 may be transmitted, as shown in FIG. 4.1, toone or more servers (e.g., the datamode microservice 1.130) running thedatastore 1.114 (e.g., the subject datastore 1.131). The one or moreservers may then submit a key verification 4.170 to the key server 1.108to verify that the use key 4.118 was issued. Upon verification, the keyserver 1.108 may extract the PRID 4.106 that is associated with the usekey 4.118 and that identifies the protected resource 4.102, and returnthe PRID 4.106 to the one or more servers (e.g., the datamodemicroservice 1.130). A data stream 4.180 of data of the protectedresource 4.102 may then be delivered to the device 1.104 and monitoredin accordance, for example, with the device active data use process flow4.1000 of FIG. 4.10. If active use of the data of the protected resource4.102 ends and/or exceeds the authorized context of the use terms 4.116,the terms engine device-side 1.112 may terminate use of the protectedresource 4.102 and the mediation server 1.102 may close the opentransaction record. The transaction record of the use by the device1.104 may be recorded in one or more hastories of data organisms withinthe datastore 1.114, as shown and described throughout this disclosure.In one or more embodiments the security node 4.110 and/or the data node4.104 may be data organisms 2.100 and the protected resource 4.102 maybe stored in the contained data 2.108 of each of the one or more dataorganisms 2.100.

Each of the processes of the authorization network 4.100 will now bedescribed. FIG. 4.2 is a contextual authorization process 4.250 showingthe authorization network 4.100 of FIG. 4.1 receiving a use request4.130 from the device 1.104, processing an identity claim 3.120,retrieving a use policy 4.108 to evaluate one or more contextual values,depositing a use key 4.118 in a key server 1.108, and returning a usekey 4.118 to the device 1.104, according to one or more embodiments. Thedevice 1.104 may store the SNID 4.112 of a security node 4.110 thatstores the protected resource identifier 4.106 in a referentialattribute 4.302. When called, the security node 4.110 may deliver theuse policy 4.108 to a source of the call (e.g., the mediation server1.102) and trigger evaluation of a use policy 4.108 that defines anauthorized context for which use of the protected resource 4.102 isauthorized. The SNID 4.112 may be obtained by previous interaction ofthe device 1.104 and the subject datastore 1.131. For example, anapplication program of the device 1.104 may have previously beenauthorized to generally use data resources of the subject datastore1.131 that are not protected by a use policy 4.108. The device 1.104 mayalso include a state dataset 4.200 that may be dynamically updatedand/or generated at the time the use request 4.130 is generated. Thestate dataset 4.200 may include data about a state of the device 1.104such as a geospatial location, a user of the device 1.104 (e.g., theuser 3.303), an application program generating the use request 4.130, adevice ID identifying the device 1.104, and/or a time at which the userequest 4.130 was generated.

The use request 4.130 may include some identifier (e.g., a uniqueidentifier) of a node within the subject datastore 1.131 that eitherdirectly includes the protected resource 4.102 or points to a data node4.104 that includes the protected resource 4.102. For example the SNID4.112 may point to the data node 4.104. The use request 4.130 mayinclude the state dataset 4.200 and/or the device root hash 3.602. Thestate dataset 4.200 and the device root hash 3.602 may be communicatedover a first channel of the network 1.101 whereas the device root hash3.602 may be communicated over a second channel of the network 1.101including submission through a second device associated with the device1.104, as described in conjunction with FIG. 3.1 through FIG. 3.10.

The mediation server 1.102 may receive the use request 4.130 over thenetwork 1.101, for example the internet and/or a WAN. The mediationserver 1.102 may then communicate the SNID 4.112 to one or moredatastore servers, for example the datamode microservice 1.130comprising the subject datastore 1.131, to retrieve the PRID 4.106 thatmay directly reference the data node 4.104. The one or more datastoreservers look up the security node 4.110 having a referential attribute4.203 pointing to the data node 4.104 comprising the protected resource4.102. The security node 4.110 may reference the data node 4.104 byusing the PRID 4.106 of the data node 4.104. The security node 4.110 mayalso include a use policy 4.108.

The use policy 4.108 comprises computer-readable instructions definingan authorized context for which the device 1.104 can use the protectedresource 4.102. The computer-readable instructions may include one ormore contextual values that are called when the use policy 4.108 isevaluated by the mediation server 1.102. For example, one of thecontextual values may request a geospatial coordinate extracted from thestate dataset 4.200 to be compared to predetermined value in the usepolicy 4.108. Another of the contextual values may be called from anexternal dataset 4.202. The external dataset 4.202 may include any datato be called that is not included within the state dataset 4.200 of thedevice 1.104 such as a data from a different data organism 2.100, adifferent data resource, and/or an external API (e.g., a publicdemographic data, a sports score). For example, the contextual valuesmay require that two professional sports scores from the Entertainmentand Sports Programming Network (ESPN) are compared to one another. Inthe embodiment of FIG. 4.2, the use policy 1.08 defines the followingauthorized context: (1) the user associated with the device 1.104 musthave an email address of foo@foo.com (which may be included within theuser profile associated with the user); (2) the device 1.104 is locatedin North America; and, (3) that the time be between 8 PM PacificStandard Time and 10 PM Pacific Standard Time. One or more of thecontextual values may also require interaction from other users, forexample by requiring affirmative manual authorization for use of theprotected resource (e.g., from an IT administrator, from an executive ofan enterprise). The computer-readable instructions that express the usepolicy 4.108 may be defined in a Turing-complete language.

The one or more datastore servers return the PRID 4.106 to the mediationserver 1.102 along with the use policy 4.108. The mediation server 1.102then evaluates the use policy 4.108 by calling each of the one or morecontextual values. For example, the email address of the user may bedrawn from a user profile (e.g., the user profile 3.114) associated withthe device 1.104, the time drawn from an internal clock of the mediationserver 1.102, and a location extracted from a geospatial coordinategenerated by an operating system of the device 1.104 and communicated inthe state dataset 4.200. After determining the authorized context forwhich use of the protected resource 4.102 by the device 1.104 is presentin association with the use request 4.130, the mediation server 1.102may generate one or more use keys (e.g., the use key 4.118A, the use key4.118B), as shown in FIG. 4.2. The mediation server 1.102 may append thePRID 4.106 of the data node 4.104 to each of the one or more use keys4.118 to form one or more key-identifier pairs 4.120 (e.g., thekey-identifier pair 4.120A, the key-identifier pair 4.120B). More thenone use key 4.118 may be utilized where the protected resource 4.102 isto be chunked and delivered in segments. For example, the data of theprotected resource 4.102 may be broken into several segments, each ofwhich may be given a segment identifier (e.g., the segment ID 4.302 ofFIG. 4.3). The mediation server 1.102 may associate each segment ID4.302 with each key-identifier pair 4.120 to form akey-identifier-segment triplet. The mediation server 1.102 may thenassociate an expiration condition 4.122 with each of the one or morekey-value pairs 4.120 and/or key-identifier-segment triplet and then maydeposit them in key deposition 4.140, along with the expirationcondition 4.122, in the key server 1.108. The expiration condition 4.122may, for example, include data to indicate to a process of the keyserver 1.108 that the key-identifier pair 4.122 should be deleted afterfive seconds, one hour, and/or be deleted upon a happening of a specificevent. The expiration condition 4.122 may even be short (e.g., onesecond) as the redemption request 4.160 may occur in a range of hundredsof milliseconds. The same instance of the expiration condition 4.122 ordifferent expiration conditions (e.g., an expiration condition 4.122A,an expiration condition 4.122B) may be appended to each of thekey-identifier pairs 4.120A. Additionally, one or more of thekey-identifier pairs 4.122 may be automatically deleted regardless ofthe expiration condition after each has its associated PRID 4.106 calledby the one or more datastore servers and extracted by the key server1.108, as shown in FIG. 4.3.

The terms engine server-side 1.112A of the mediation server 1.102 maygenerate a use terms 4.116 comprising data instructing the terms enginedevice-side 1.112B to conform with the authorized context. For example,the use terms 4.116 in the embodiment of FIG. 4.2 may include dataspecifying that data of the protected resource 4.102 may be used betweena set of geospatial coordinates (e.g., which may be determined by themediation server 1.102 to specify a territory in North America) andbetween a time of 8 PM PCT to 10 PM PCT. The use terms 4.116 may be asuccinct set of computer instructions usable by the device 1.104, theterms engine server-side 1.112A and/or the terms engine device-side1.112B to determine the set of permissible actions that a particularuser and/or device may take in association with the data of theprotected resource 4.102. The use policy 4.108, for example, may specifyan authorized context with specifies several individual users and allowsthem use of data in different ways. A given use policy 4.108 may yield afirst set of use terms 4.116A for a first use request 4.130 of a firstuser 1.104A and a second set of use terms 4.116B for a second user1.104B. The first set of use terms 4.116A may provide a “sub” authorizedcontext based on geospatial constraints while the use terms 4.116B mayprovide a different sub authorized context based on affirmativepermission from an administrator or 30 second only use (e.g., sufficienttime to read an abstract of a document). The mediation server 1.102 maythen transmit, according to the key return 4.150, a first use key4.118A, a route 4.206A for the redemption of the first use key 4.118A,and/or the set of use terms 4.116.

FIG. 4.3 is a controlled data delivery process 4.350 showing thecontextual authorization network 4.100 of FIG. 4.2 receiving aredemption request 4.160 comprising the use key 4.118A, verifying theuse key 4.118A in the key server 1.108, and streaming data of theprotected resource 4.102 to the device, according to one or moreembodiments. The device 1.104 transmits the use key 4.118A to the one ormore datastore servers that may include, for example, the datamodemicroservice 1.130. The redemption request 4.160 may be made by way ofthe route 4.206A (e.g., which may also be referred to as a redemptionroute) and returned to the device 1.104 by the mediation server 1.102.For example, the route 4.206A that may referred to as a redemption routemay be a network address such as a media access control (MAC) addressand/or an Internet protocol (IP) address specifying a node of aninstance of the network 1.101. In addition to the redemption route adynamic protocol designation may be conveyed that specifies whichcommunications protocol to use in an interaction with one or moreservers (e.g., the redemption). The one or more datastore servers mayeffect the key verification 4.170 that queries the key server 1.108 withthe use key 4.118A. If the use key 4.118A is present (e.g., theexpiration condition 4.122A has not transpired), the key server 1.108may return the PRID 4.106 and/or the segment ID 4.302A to the one ormore datastore servers. In addition, the key server 1.108 may return ause key 4.118B of a second segment of the protected resource 4.102, thesecond use key 4.118B to be returned to the device 1.104 for use asecond instance of the redemption request 4.160 (e.g., which may occurautomatically when data the protected resource 4.108 as used by thedevice 1.104 reaches the end of a memory buffer of the device 1.104).After receiving the PRID 4.106, the segment identifier 4.302A and/or theuse key 4.118B, the one or more datastore servers may then reference thedata node 4.104 comprising the protected resource 4.102, extract asegment matching the segment ID 4.302A, and initiate the data stream4.180 to the device 1.104 to effect a controlled delivery of a firstsegment of the protected resource 4.102. The second use key 4.118B and anew route 4.206B may be communicated to the device 1.104 for the nextredemption request 4.160. As the data stream 4.180 is received, thedevice 1.104 may begin to monitor use of the data of the protectedresource 4.102 with the terms engine device-side 1.112B. In addition,the terms engine server-die 1.112A may have an open transaction record4.404 of a use transaction of the device 1.104A to continue monitoringuse of the data of the protected resource 4.102 until the usetransaction is closed, as shown in FIG. 4.4.

FIG. 4.4 is a terms engine view 4.450 showing the contextualauthorization network 4.100 of FIG. 4.3 monitoring use of and enforcingephemerality of data of the protected resource 4.102 of FIG. 4.1 througha device-side terms engine (e.g., the terms engine device-side 1.112B)associated through the network 1.101 with a server-side terms engine(e.g., the terms engine server-side 1.112A), according to one or moreembodiments. In FIG. 4.4, the user 3.303A may be using the device 1.104to view and/or edit data of the protected resource 4.402 (for example, adocument), listen to the protected resource 4.402 (for example, music)and/or view the protected resource 4.402 (for example, a video).

In the embodiment of FIG. 4.4 the mediation server 1.102 includes theterms engine server-side 1.112A having an open transaction record 4.404of a set of use transactions that are currently active. For example,when the device 1.104A is using the protected resource 4.102 the opentransaction record 4.404 may include the use policy 4.108 associatedwith the protected resource 4.102 (e.g., from the security node 4.110),the state dataset 4.200 of device 1.104 that may be communicated alongwith the use request 4.130 (and may also include the external dataset4.202 assembled during evaluation of the use policy), and/or the useterms 4.116A generated for the use request 4.130 of the device 1.104.The open transaction record 4.404 may also include a use identifier4.402A specifying the use transaction that is open. Although now shownin the embodiment of FIG. 4.4, the open transaction record 4.404 mayalso include the PRID 4.102 of the protected resource 4.102 such thatupdates to the use policy 4.108 of the protected resource 4.102 may bematched to the open transaction record 4.404. This may be useful, forexample, to effect the policy update 4.501 shown in FIG. 4.5.

The terms engine device-side 1.112B may include an active use ledger4.400 specifying data of one or more protected resource 4.102 that is inactive use by the device 1.104. The terms engine device-side 1.112B maybe part of an application program running on the device 1.104 and/or maybe a separate process running on the device that monitors use of thedata of the protected resource 4.102 and/or enforces ephemerality of theprotected resource 4.102 by erasing appropriate memory addresses withinthe device 1.104 when use of a particular protected resource 4.102 isends and/or is terminated. In the embodiment of FIG. 4.4 each piece ofdata may include the use identifier (e.g., the use identifier 4.402A forthe first segment of the protected resource 4.102, the use identifier4.402B for a different protected resource 4.102). For example, theapplication program on the device 1.104 may display a user interface tothe first user 3.303A that includes text (which may be a first protectedresource 4.102A) while simultaneously displaying an image (which may bea different protected resource 4.102B). If the user 3.303A switches to adifferent user interface view not displaying the text and/or the image,the active use may be determined by the terms engine device-side 1.112Bto have ended and the data of the protected resource 4.102 (e.g.,associated with the use identifier 4.206A) and/or the differentprotected resource (e.g., associated with the use identifier 4.402B) maybe scrubbed from memory one or more memory addresses of the device1.104. The terms engine device-side 1.112B may also be configured toterminate active use of the data of one or more items monitored withinthe active use ledger 4.400 when a network connection (e.g., the networkconnection 1.101) is lost or unreliable. The active use, for example,may be relatively frequent direct interaction (e.g., providing inputsuch as typing or switching between screens every few seconds, minutesor hours). The active use may also be based, for example, upon a screenthat is currently shown on a display of the device 1.104, whether one ormore application programs is analyzing data, and/or whether an audiotrack has been paused or a video volume muted. In addition, the termsengine device-side 1.112B may terminate active use of one or moreprotected resources 4.102 where the state dataset 4.200 (which may bedynamically changing as time increases and/or the device 1.104 changeslocation) no longer conforms to one or more parameters and/orprogrammatic terms of the use terms 4.116 stored in the terms-enginedevice-side 1.112B. Active monitoring by the device 1.104 is shown anddescribed in conjunction with the process flow 4.1000 of FIG. 4.10. Themediation serer 1.102 may also instruct the device 1.104 to terminateactive use of the data of one or more protected resources 4.102, asshown and described in conjunction with FIG. 4.5.

FIG. 4.5 is a real-time revocable authorization process 4.550 by whichdata of the protected resource 4.102 in active use by the device 1.104may have use terminated based on an updated use policy 4.502 generatedby a second user 3.303B in control of the protected resource 4.102, atermination notice 4.506 and/or a termination report 4.508 generated bythe device 1.104 and transmitted to the mediation server 1.102 to closethe use transaction, according to one or more embodiments. In FIG. 4.5 asecond user 3.303B may communicate over an instance of the network 1.101with one or more datastore servers containing the protected resource4.102, for example the subject datastore 1.131, using the device 4.504(e.g., a smartphone, a different server, a desktop computer, a notebookcomputer). The user 3.303B may generate the policy update 4.501 thatchanges the use policy 4.502 defining the authorized context for whichuse of the protected resource is authorized. For example, the user3.303B may modify the use policy 4.108 of the security node 4.110 todefine additional contextual values or changed values and/or additionalparameters in which the contextual values are compared to define theauthorized context.

Upon receipt of the updated use policy 4.502, the one or more datastoreservers may transmit the PRID 4.106 of the protected resource 4.102receiving the policy update 4.501 to the key server 1.108. They keyserver 1.108 may immediately expire all keys associated with the PRID4.106. The updated use policy 4.502 along with the PRID 4.106 associatedwith the update use policy 4.502 may be communicated through the network1.101 in the mediation server 1.102 where it is matched with the opentransaction record 4.404. The terms engine server-side 1.112A may thenre-evaluate the updated use policy 4.502 using the stored state dataset4.200 received by the mediation server 1.102 in association with of theuse request 4.130. The terms engine server-side 1.112A may also querythe device 1.104 for an update use policy 4.500 and re-evaluate theupdated use policy 4.502 with the updated state dataset 4.500. If theuse by the device 1.104 no longer conforms to the authorized contextbased on the updated use policy 4.502, the terms engine server-side1.112A may transmit a termination notice to the terms engine device-side1.112B to end use of the data of the protected resource 4.102.Otherwise, the terms engine server-side 1.112 may generate the updateduse terms 4.116 and transmit them through the network 1.101 to thedevice 1.104. Once received by the device 1.104, the updated use termsmay replace the existing use terms (e.g., the updated use terms 4.516may replace the use terms 4.116A). The terms engine device-side 1.112Bmay then continue to monitor active use of the data of the protectedresource 4.102 for conformance with the updated use terms 4.516 thatdefine the particular authorized context.

Where active use of the data of the protected resource 4.102 isterminated, the device 1.104 may generate a termination notice 3.406and/or a termination report 4.508. The termination notice 4.506 may begenerated, for example, where the terms engine device-side determinesthat the use by the device 1.104 does not conform to the use terms 4.116stored in the active use ledger 4.400. The termination notice 4.506 maybe transmitted through the network 1.101 to the mediation server 1.102.Once received, the terms engine server-side 1.112A may close the opentransaction record 4.404 to end the use transaction. The terminationnotice 4.506 may also be generated when network connectivity is lost butmay be late transmitted to the mediation server 1.102 when networkconnectivity is re-established. In addition to the termination notice4.506, the terms engine device-side may generate the termination report4.508 specifying which actions the device 1.104 and/or the first user3.303A of the device 1.104 took outside the scope of the authorizedcontext (e.g., against an applicable instance of the use terms 4.116).The use transaction, which may include data of the termination report4.508, may be deposited in a block of one or more hastoreis 2.104 of oneor more data organisms 2.100 in accordance with FIG. 2.1 through FIG.2.11. For example the use transaction record may be deposited as atransaction record 2.302 in a profile hastory 3.104 of a user profile3.114 associated with the user 3.303A and/or the user 3.303B. The usetransaction record may also be deposited in a file hastory 2.1104 (e.g.,of the data node 4.104), an application hastory 2.1106 associated withan application program for which the protected resource 2.102 is anapplication resource, and/or a hastory of the security node 4.110. Wherean identity of a user profile 3.114 associated with the device 1.104and/or the user 3.303A is updated, the mediation server 1.102 maytransmit data usable to assemble the transaction record 4.402 of the usetransaction through one or more channels to the device 1.104 to beassembled and used in evolving the identity of the device hastory 3.108to yield a new device root hash 3.602, as shown and described inconjunction with FIG. 3.1 through FIG. 3.10.

In an alternate embodiment not shown in FIG. 4.1 through FIG. 4.6, afterdetermining the authorized context is present the mediation server 1.102may authorize use of the protected resource 4.102 and effect the datastream 4.180 of FIG. 4.1. The terms engine device-side 1.112B mayautomatically erase the data of the protected resource 4.102 accordingto a simple set of terms, for example after five seconds, when the dataof the protected resource 4.102 is not in active use, and/or when anetwork connection is lost and/or unreliable.

FIG. 4.6 is a use key generation process flow 5.600 illustrating aprocess by which the contextual values of the use policy 4.108 may beevaluated and the use key 4.118 of FIG. 4.2 may be generated, accordingto one or more embodiments. Operation 4.602 receives a use request 4.130from the device 1.104. The use request 4.130, for example, may bereceived by the mediation server 1.102 and/or a different server of thedata resource control network 1.100. Operation 4.604 may open a usetransaction, for example by generating the open transaction record 4.404within the terms-engine server-side 1.112A. In operation 4.606, thestate dataset 4.200 is extracted from the use request 4.130. Forexample, a device ID, an application program ID, one or more geospatialcoordinates, an operating system of the device 1.104, data related touse of data resources and/or additional data may be pulled from aprotocol conveying the use request 4.130. Operation 4.608 extracts a usepolicy 4.108 from one or more datastores 1.114, for example from thedata node 4.104 and/or the security node 4.110. Operation 4.610 gathersone or more contextual values that may be present in the use policy4.108. The values of the contextual values may be draw from the statedataset 4.200 and/or the external dataset 4.202 (both of which may becollectively referred to as a contextual dataset). The external dataset4.202 may be any data not received from or associated with the device1.104. For example, to assemble the external dataset 4.202 the mediationserver 1.102 may retrieve values from one or more data resources and/ordata organisms 2.100 (e.g., a service level associated with a userprofile 3.114), and/or values from sources outside the data resourcecontrol network 1.100, such as weather events, government statistics,and/or values drawn from a distributed consensus network. Operation4.612 may generate a set of use terms 4.116 from the use policy 4.108,for example by evaluating computer-readable instructions of the usepolicy 4.108 and/or using data received by calling the contextual valuesto generate specific permissible use parameters for the use request4.130.

FIG. 4.7 is a continued process flow 4.700 of the use key generationprocess flow 4.600 of FIG. 4.6, illustrating a process by which thecontextual values of the use policy 4.108 may be evaluated and the usekey 4.118 of FIG. 4.2 may be generated, according to one or moreembodiments. Operation 4.614 is a decision that determines whether useof data of the protected resource 4.102 by the device 1.104 conforms tothe authorized context of the use policy 4.108. For example, contextualvalues may be compared to value ranges using comparators within thecomputer-readable instructions of the use policy 4.108. If the userequest 4.130 does not conform to the authorized context, operation4.616 may generate an error message that may be returned to the device1.104, and operation 4.618 may close the open transaction record 4.404of the terms engine device-side 1.112A. If use by the device 1.102conforms to the authorized context, operation 4.620 determines whetherthe protected resource 4.102 is to be segmented. The data node 4.104,the security node 4.110, the use policy 4.108 and/or the data resource4.102 may include data specifying how the data resource 4.102 is to besegmented. Alternatively, one or more servers may automatically segmentthe protected resource 4.104, for example in ten second segments wherethe protected resource 4.102 is an audio file and/or individualparagraphs where the protected resource 4.102 is a text file (e.g., asegmented file in XML format, a PDF, and/or a markdown file). If thedata of the protected resource 4.102 is to be segmented, operation 5.624generates two or more segment identifiers (e.g., the segment IDs 4.302of FIG. 4.3) and operation 4.626 generates two or more use keys 4.118,appends the PRID 4.106 to each of the two or more use keys to form twoor more key-identifier pairs 4.120, and the may further append thesegment identifiers to form two or more key-identifier-segment triplets(which still comprises the key-identifier pair 4.120). Where it isdetermined in operation 4.620 that protected resource 4.620 does notinclude segments, operation 4.622 generates a use key 4.118 and appendsthe PRID 4.106 to form a key-identifier pair 4.120. Additional processesmay then return one or more use keys 4.118 to the device 1.104 to besubmitted in the redemption request 4.160 and to deposit the one or morekey-identifier pairs 4.120 and/or key-identifier-segment triplets in thekey-server 1.108 for the key verification 4.170. However, in one or moreother embodiments the keys need not be generated simultaneously. Forexample, a use key 4.118B may be generated when a process of the devicedetermines that data associated with a first segment (obtained byredemption of the first use key 4.118A) is nearing the end of a memorybuffer or otherwise required by the user.

FIG. 4.8 is a use request evaluation process flow 4.800 showing aprocess for authorizing use of a protected resource 4.102 according to aset of computer-readable instructions of a use policy 4.108, accordingto one or more embodiments. Operation 4.802 receives a use request 4.130from a device 1.104 to use a protected resource 4.102 stored in a datanode 4.104 of a data structure within a datastore 1.114. In one or moreembodiments, the data structure may be a non-hierarchical datastructure. A hierarchical data structure is a data structure thatincludes a set of nodes, all of which except one are subordinate to oneof the set of nodes. Specifically, each child node has only one parentnode, whereas each parent node can have one or more child node. In orderto retrieve data from a hierarchical data structure, a tree structuremay need to be traversed starting from a root node of the hierarchy (notto be confused with the root node of the Merkle tree of FIG. 2.4 or anyof the root hashes discussed in the present embodiments). Anon-hierarchical data structure may include, for example, a graph datastructure in which a set of data objects that may be collections ofattribute-value pairs may reference one another using one or morereferential attributes. The references may form a directed acyclic graphthat may be known to those in the art. In one or more preferredembodiments, the data resources and/or the data organisms 2.100 arestored in a proprietary semantic data structure disclosed by a relatedinventive entity and/or common assignee of the present disclosure. Thesemantic data structure may use “domains” as the data nodes 4.104 thatmay be flexibly related to model any relationship by using referentialattributes. The domains may be data resources, data organisms 2.100,and/or protected resources that may act as containers of not only aprimitive data such as a document or video (e.g., the primitive dataitself may be an example of a data resource), but may also store ahastory 2.104, referential attributes, the use policy 4.108, ownershipinformation, a unique identifier, and/or additional data.

Operation 4.804 extracts from the data node 4.104 and/or a security node4.110 having a referential attribute 4.203 pointing to the data node4.104 a use policy 4.108 including computer-readable instructionsdefining an authorized context for which the device 1.104 can use theprotected resource 4.102 based on one or more contextual values.Operation 4.806 initiates a use transaction (which may be, in one ormore embodiments, an instance of the transaction 2.200 of FIG. 2.2 thatis recorded in one or more hastories 2.104) that executes thecomputer-readable instructions of the use policy 4.108 to gather one ormore contextual values and to determine whether the use request 4.130satisfies the authorized context for which the device 1.104 can use theprotected resource 4.102. Operation 4.808 authorizes access to theprotected resource 4.102 by the device 1.104 when it is determined basedon the contextual values that the use request (e.g., the use request4.130) conforms to the authorized context for which the device 4.104 mayuse the protected resource. For example, the use policy 4.108 mayrequire that the protected resource 4.102 may only be accessed and/orused when the device 1.140 is within a geospatial boundary around anenterprise headquarters and when the use request 4.130 is withinbusiness hours of the enterprise. Operation 4.810 generates a use terms4.116 from the computer-readable instructions defining the authorizedcontext for the use request 4.130. For example, depending on the usepolicy 4.108, a different set of use terms may be generated for a device1.104 of a first user and a device 1.104 of a second user.

FIG. 4.9 is a key generation and redemption process flow 4.900 showing,subsequent to evaluation of the contextual values of the use policy4.108 of FIG. 4.1, a process by which the use keys 4.118 may begenerated, returned to the device 1.104, and redeemed upon a redemptionrequest 4.160 by the device 1.104, according to one or more embodiments.Operation 4.902 generates a set of one or more use keys 4.118 andappends an identifier of a protected resource (e.g., the PRID 4.102) toeach of the set of one or more use keys 4.118 to form one or morekey-identifier pairs 4.120. Operation 4.904 associates an expirationcondition 4.122 with each of the one or more key-identifier pairs 4.120,and operation 4.906 optionally divides data of the protected resource4.102 into two or more segments and may attach a segment identifier toeach (e.g., two or more instance of the segment ID 3.402) of the one ormore key-identifier pairs 4.120. The result may be referred to as akey-identifier-segment triplet (that includes the key-identifier pair4.120). The key-identifier pairs 4.120 and/or the key-identifier-segmenttriplets may be deposited in a server such as the key server 1.108. Thekey server 1.108 may be configured to monitor each expiration condition4.122 of each and effect rapid verification of validity of the use keys4.118 when queried by one or more servers. Operation 1.102 returns afirst use key 4.118A of the set of one or more use keys 4.118 to thedevice 1.104 through the network 1.101. The mediation server 1.102 maytransmit the first use key 4.118A. Operation 4.910 may receive aredemption request 4.160 from the device 1.104 including the first usekey 4.118A, and operation 4.912 may verify the first use key 4.118A bydetermining, for example, that a PRID 4.106 is associated with the usekey 4.118A within at least one key-identifier pair 4.120 that has notexpired.

Operation 4.914 extracts the identifier of the protected resource (e.g.,the PRID 4.106) from a first key-identifier pair 4.120A of the one ormore key-identifier pairs 4.120 and retrieves the protected resource4.102 with the identifier of the protected resource 4.102. For example,the key server 1.108 may extract the PRID 4.106 and the datamodemicroserver 1.130 may retrieve the protected resource 4.104 within thedatastore 1.114 (e.g., the subject datastore 1.131). Operation 4.916streams the protected resource 4.102 to the device 1.104 for use by thedevice 1.104, optionally including a second use key 4.118B of a secondsegment identifier (e.g., the segment ID 4.302B). Additionally,operation 4.916 may convey the route 2.306B for the next redemptionrequest. Operation 4.918 may then receive a continued use requestautomatically generated by the device 1.104 when the first segment ofthe data of the protected resource 4.102 approaches an end of a memorybuffer of the device 1.104, the continued use request including thesecond use key 4.118B of the one or more use keys 4.118. The second usekey 4.118B may be conveyed using the route 4.206B provided to the device1.104. The route 4.206B, for example, may include an IP address of acontent delivery server closest to the device 1.104 (that may includesome or all of the data resources of the datastore 1.114). Operations4.916 and operations 4.918 may then repeat for additional segments ofthe protected resource 4.102, each segment streamed to the device 1.104may include a new use key 4.118 of the set of one or more use keys 4.118and may include a new instance of the route 4.206.

FIG. 4.10 is a device active data use process flow 4.1000 showing aprocess that can be used to monitor use of the protected resource 4.102by the device 1.104 and/or enforce ephemerality of the protectedresource 4.102 on the device 1.104 in accordance with the use policy4.108 and a set of use terms 4.116 generated based on the use policy4.108, according to one or more embodiments. Operation 4.1001 may redeema use key 4.118, for example from one or more datastore servers andaccording to a network address specified by a route 4.206. Operation4.1002 receives a data stream of the protected resource 1.104 (e.g., thedata stream 4.180 of FIG. 4.1). Operation 4.1004 deposits a use ID(e.g., the use identifier 4.402 of FIG. 4.4) and a use terms 4.116 in anactive use ledger 4.400 of the device 1.104. In operation 4.1006, thedevice 1.104 and/or an application program of the device 1.104 uses thedata of the protected resource 4.102, for example by viewing a document,playing an audio track, and/or visualizing a report (e.g., graphs,charts) based upon data of the protected resource 4.102. While the dataof the protected resource 4.102 is in use, operation 4.1008 andoperation 4.1012 through operation 4.1016 may monitor its use. Operation4.1008 determines if the data is in active use. The definition of activeuse may be pre-set within the terms engine device-side 1.112B and/or maybe defined by the use terms 4.116. For example, the use terms 4.116 mayspecify that data is not in active use when it is not currentlydisplayed on a screen of the device 1.104, where the user has notprovided an input for a predetermined period of time (e.g., 30 seconds,1 hour) where the device 1.104 and/or an application of the device 1.104has been inactive, or when a display of the device 1.104 is powered downby the operating system. If the data is no longer in active use,operation 4.1010 determines whether there are additional segments andwhether the active use terminated due to a current segment of data ofthe protected resource 4.102 reaching or nearing the end of a memorybuffer. For example, operation 4.1010 may determine that an additionalsegment should be retrieved where a segment of audio is about to end.Operation 4.1010 may also determine whether additional segments of theprotected resource 4.102 exist by checking if additional use keys (e.g.,the use key 4.118B) were returned to the device 1.104 in associationwith operation 4.1002. To retrieve additional segments, operation 4.1010returns to operation 4.1000 which redeems the a next use key (e.g., theuse key 4.118B). If no additional segments are to be retrieved,operation 4.1010 proceeds to operation 4.1018 which may delete data ofthe protected resource 4.104 at one or more memory addresses tracked bythe terms engine device-side 1.112B and/or scrub the memory buffer ofthe device 1.104. Operation 4.1020 may then generate a terminationnotice 4.506 and/or a termination report 5.408 and one or more serversmay close an open transaction record 4.404 of the use transaction by thedevice 1.104.

If the data of the protected resource 4.102 continues to be in activeuse, operation 4.1008 proceeds to operation 4.1012 that is a decisionprocess that determines whether updated use terms 4.516 have beenreceived. If so, operation 4.1012 proceeds to operation 4.1004 that maythen deposit the updated use terms 4.516 in place of the use terms4.116. If no updated use terms 4.516 have been received, operation4.1014 determines whether a network connection remains established overthe network 1.101 (e.g., between the device 1.104 and one or moreservers of the authorization network 4.100). The network connection maybe considered to be lost if, for example, a latency of a predeterminedthreshold value is reached. If no network connection remains, operation4.1014 may proceed to operation 4.1018. If a connection remainsestablished, operation 4.1014 may proceed to operation 4.1016 thatevaluates the active use of the data of the protected resource 4.102 todetermine whether it conforms to the use terms 4.116 and/or, whereapplicable, the updated use terms 4.516. For example, a set ofgeospatial coordinates within the use terms 4.106 may require that theactive use occur within a given municipality. If the state dataset 4.200of the device, as may be retrieved from an operating system of thedevice 4.102, indicates the coordinates are outside of the geospatialcoordinates of the municipality, operation 4.1016 may proceed tooperation 4.1018. Otherwise, operation 4.1016 returns to operation4.1006.

FIG. 4.11 is a use termination process flow 4.1000 illustrating aprocess by which an open transaction record 4.404 of the active use ofthe protected resource 4.102 is closed the protected resource 4.102 isdetermined to no longer be in active use, a network connection to thedevice 1.104 was lost, and/or the device 1.104 performed an actionoutside of the use terms 4.116, according to one or more embodiments.Operation 4.1102 maintains an open transaction record 4.404 of a usetransaction and stores one or more contextual values usable to determinean authorized context (e.g., values of the state dataset 4.200 and/orthe external dataset 4.202), the open transaction record 4.404associating a device 1.104 with an active use of a protected resource4.102. Operation 4.1104 returns the use terms 4.116 generated from a setof computer-readable instructions (e.g., the set of computer-readableinstructions of the use policy 4.108) to the device 1.104. Operation4.1106 may monitor use of and enforce ephemerality of the protectedresource 4.102 on the device 1.104 by maintaining a ledger (e.g., theactive use ledger 4.400) including data identifying the protectedresource (e.g., the use ID 4.402) that is in active use by the deviceand a corresponding instance of the use terms 4.116 associated with theauthorized use of the protected resource 4.102. As shown in conjunctionwith FIG. 4.5, operation 4.1108 receives from a second user (e.g., thesecond user 3.303B) a policy update 4.501 that alters thecomputer-readable instructions of the use policy 4.108 defining theauthorized context for use of the protected resource 4.102. The resultmay be the updated use policy 4.502. Operation 4.1110 determine the opentransaction record 4.404 is associated with the protected resource 4.102and the device 1.104. For example, one or more of the datastore serversthat include the data node 4.104 storing the protected resource 4.102may transmit the updated use policy 4.502 to the mediation server 1.102along with the PRID 4.106. The mediation server 1.102 may then use thePRID 4.106 or another method to locate open transaction records 4.404associated with the PRID 4.106.

4.1112 re-generates the use terms 4.116 to an updated use terms 4.516based on the stored one or more contextual values (e.g., the statedataset 4.200) and/or a new set of gathered values (e.g., the updatedstate dataset 4.500) to form a new instance of the authorized context.Operation 4.1114 then pushes the updated use terms 4.516 generated fromthe policy update 4.501 to the device 1.102. Operation 4.1116 processesa termination notice. For example the termination notice may be atermination notice 4.506 that the protected resource 4.102 is no longerin active use by the device and/or that use of the protected resource4.102 has been automatically terminated where the device 4.102 performedan action outside of the use terms 4.116 and/or the updated use terms4.516. The termination notice may also be generated by a server of theauthorization network 4.100, for example where a network connection tothe device 4.102 is lost. Finally, in operation 4.1118, the result ofthe termination notice (e.g., the termination notice 4.506) may belogged, the open transaction 4.404 record may be closed, and optionallyone or more hastories 2.104 may be updated with a transaction record2.302 of the use transaction.

The authorization network 4.100 provides a number of advantages.Permissions of a data resource through the use policy are both flexibleand can relatively easily defined for each protected resource. The usepolicy based on gathering contextual values is able to compare thosevalues, for example to determine by defining inputs to be extracted froma gathered external dataset that a user may use a particular protectedresource only where one sports score is larger than another sportsscore. In a specific example, if an employee of an enterprise asks foraccess to a protected resource the employee is not generallypermissioned to use, contextual access and/or use controls through theuse policy may be placed by an administrator rather than add theemployee to a group that may over-permission the employee. This mayprevent compromise of an entire group of protected resources if, forexample, the employee loses his or her identity credentials that allowaccess to an entire group of protected resources. Similarly, a musicianmay wish to share a digital asset such as music with a fan, but onlywish to control how many times the fan can listen to that music on thefan's device, which may substantially increase the economic value of themusic to the artist. The use policy 4.108 may even be able to respond toevents of the device. For example, where a 3D computer aided design file(CAD) is streamed to the device for single time use, an error of the 3Dprinter during the manufacturing process may be reported back to one ormore servers and the use policy may include computer-readableinstructions to interpret the error and re-stream the 3D CAD file.

The data authorization network 4.100 may also be able to implement usecontrols over data without a separate external system for storingpermissions such as an access control list. This may decrease computingoverhead in resolving authorization requests, allowing the authorizationnetwork 4.100 and/or the data resource control network 1.100 to scale,both in the number of users that can interact and the number ofauthorization requests per each user that can be quickly resolved.Association of both a protected resource and the use policy defining theauthorized context may also make it easier for users to determine whichcontrols are associated with which protected resources and/or whether adata resource is unprotected, improving data security and control.

Finally, the authorization network 4.100 may be able to implement acapability-based control system with real-time revocable authorizationof protected resources. As a result, protected resources may not leavethe control of the authorization network 4.100, e.g., through use of theterms engine. There is therefore a much higher probably that control ofthe protected resources, along with associated data about their use thatmay be valuable for analysis and insight, is retained by an owner and/oran organization running the datastore.

An example of the authorization network will not be provided within thecontext of an enterprise. FIG. 4.12 is an enterprise use policy view4.1250 illustrating use of the use policy 4.108 to define an authorizedcontext for limited access and use of a protected resource that is aconfidential spreadsheet 4.1202, the authorized context includingflexible controls such as a requirement that an executive of theenterprise (e.g., a corporate executive office 4.1203A, the corporatefinancial officer 4.1203B) be within a geospatial fence of the businesspremises 4.1200 for an employee 4.1203C to view the confidentialspreadsheet 4.1202, according to one or more embodiments. Theconfidential spreadsheet 4.1202 may be a protected resource stored in afirst datastore server 1.106A (e.g., within the data node 4.104 of FIG.4.1). The datastore server 1.106B may store the control policy 4.108defining an authorized context for access to and use of the confidentialspreadsheet 4.1202. The business premises 4.1200 may be an officebuilding or other physical location and may be specified as a “geofence”which may be a set of geospatial coordinates forming a bounded area.Each of the devices and servers in FIG. 4.12 may be connected throughone or more networks. The device 1.104A and the device 1.104B arecommunicatively coupled to the datastore server 1.106B through acellular network that may have a capability of transferring IP packets(e.g., by a protocol such as 3G, LTE).

The use policy 4.108 of FIG. 4.12 is implemented to provide carefulscope over access to and use of the confidential spreadsheet 4.1202 asit may contain vital trade secrets such as revenue of the enterprise orkey business strategy. In a detailed example, the use policy 4.108 mayspecify a complex authorization scheme. First, any executive of theenterprise (including the CEO 4.1203A and the CFO 4.1203B) may view thespreadsheet 4.1202 in any geospatial location as long as anotherexecutive of the enterprise is within 100 yards of the executive. Thisdetermination of proximity may be made based up one or more statedatasets 4.200 retrieved from devices of the executives (e.g., thedevice 1.104A, the device 1.104B). Second, the control policy mayspecify that an employee of the enterprise may have access to theconfidential spreadsheet 4.1202 if: (1) at least one executive is withinthe geospatial boundary of the business premises 4.1200; (2) if the userequest (e.g., the use request 4.130) for the confidential spreadsheet4.1203 originates from a specific set of Ethernet network addressesassociated with a local area network of the business premises 4.1200;and (3) if the use request is generated between business hours (e.g.,between 8 AM to 6 PM).

The employee 4.1203 may need to see a couple calculations or numberswithin the confidential spreadsheet 4.1202. After the employee 4.1203Cis authenticated (e.g., by the process described in conjunction withFIG. 3.1), the employee 4.1203C may submit a use request to themediation server 1.102 including an SNID 4.112 of the security node4.110 storing the use policy 4.108 and reference the data node 4.104that stored the confidential spreadsheet 4.1202. The mediation server12.02 may execute the one or more conditionals of the use policy 4.108and retrieve one or more contextual values such as the Ethernet addressof the device 1.104C, a geospatial coordinate of at least one of thedevice 1.104B and 1.104A, and a time as may be maintained on an internalclock of the mediation server 1.102. After evaluating the use policy4.108, the mediation server 1.102 may create an open transaction record4.404 in transaction engine 1.110 and/or the terms engine server-side1.112, generate a use terms (e.g., the use terms 4.116 of FIG. 4.1), andgenerate and deliver a set of use keys 4.118 for multiple segments ofthe confidential spreadsheet 4.1202, for example each page.

The mediation server 1.102 may return a first use key 4.116Acorresponding to a first page of the confidential spreadsheet 4.1202. Anapplication program of the device 1.104C may then redeem the first usekey 4.116A for the first page (along with a second use key 4.116B whichmay also be returned at the same time as th first page). When the user4.1203C determines that what he or she wishes to see is on the nextpage, the key 4.116B is redeemed. As a second page of the confidentialspreadsheet is streamed to the device 1.104C, the first page may nolonger be in “active use” by device 1.104C according to the use terms4.116 stored on the terms engine device-side 1.112B and may therefore beautomatically scrubbed form a memory of the device 1.104C. If theemployee 4.1203C takes a screenshot capture of the active page incontradiction to the use terms 4.116, the terms engine device-side mayterminate use of the confidential spreadsheet 4.1202, and generate andconvey a termination report 4.508 to the mediation server 1.102. Themediation server 1.102 may instruct the key server 1.108 to delete alluse keys, may close the open transaction record (e.g., the usetransaction) and then have the transaction record deposited in one ormore hastories. Additionally, the use policy 4.108 specifies that basedupon the termination report 4.508 the executive at the business premises4.1200 (e.g., the CFO 4.1203B) should have a notification sent to his orher device (e.g., the device 1.104B). Similarly, the use may beterminated where a network connection between the device 1.104C and themediation server 1.102 is lost, or where all executives leave thegeospatial boundary of the business premises 4.1200 as may beperiodically polled by the mediation server 1.102. The transactionrecord generated from the use of the confidential spreadsheet 4.1202 maybe deposited directly into a hastory of the security node 4.110referencing the data node 4.104 such as to create an immutable record ofthe transaction that may be used in auditing and/or accounting ofprotected resources of the datastore 1.114.

Although the present embodiments have been described with reference tospecific example embodiments, it will be evident that variousmodifications and changes may be made to these embodiments withoutdeparting from the broader spirit and scope of the various embodiments.For example, the various devices, servers and engines described hereinmay be enabled and operated using hardware circuitry (e.g., CMOS basedlogic circuitry), firmware, software or any combination of hardware,firmware, and software (e.g., embodied in a non-transitorymachine-readable medium). For example, the various electrical structureand methods may be embodied using transistors, logic gates, andelectrical circuits (e.g., application specific integrated (ASIC)circuitry and/or Digital Signal Processor (DSP) circuitry).

In addition, it will be appreciated that the various operations,processes and methods disclosed herein may be embodied in anon-transitory machine-readable medium and/or a machine-accessiblemedium compatible with a data processing system (e.g., the device1.104A, the mediation server 1.102, one or more servers 1.106, the keyserver 1.108). Accordingly, the specification and drawings are to beregarded in an illustrative rather than a restrictive sense.

The structures and engines in the figures may be shown as distinct andcommunicating with only a few specific structures and not others. Thestructures may be merged with each other, may perform overlappingfunctions, and may communicate with other structures not shown to beconnected in the figures. Accordingly, the specification and/or drawingsmay be regarded in an illustrative rather than a restrictive sense.

In addition, the logic flows depicted in the figures do not require theparticular order shown, or sequential order, to achieve desirableresults. In addition, other steps may be provided, or steps may beeliminated, from the described flows, and other components may be addedto, or removed from, the described systems. Accordingly, otherembodiments are within the scope of the preceding disclosure.

We claim:
 1. A computer-implemented method for authorizing andcontrolling use of a data resource, the method comprising: receiving ause request from a device to use a protected resource stored in a datanode of a non-hierarchical data structure within a datastore, whereinthe data node comprising an identifier whereby the data node isaddressable within the datastore; extracting from at least one of thedata node and a security node having a referential attribute pointing tothe data node a use policy comprising computer-readable instructionsdefining an authorized context for which the device can use theprotected resource based on one or more contextual values; initiating ause transaction that executes the computer-readable instructions of theuse policy to gather the one or more contextual values and to determinewhether the use request satisfies the authorized context for which thedevice can use the protected resource; authorizing access to theprotected resource by the device when it is determined that based on theone or more contextual values that the use request conforms to theauthorized context for which the device may use the protected resource;generating a set of one or more use keys and appending the identifier ofthe protected resource to each of the set of one or more use keys toform one or more key-identifier pairs; returning a first use key of theset of one or more use keys to the device; receiving a redemptionrequest from the device comprising the first use key and verifying thefirst use key; streaming the protected resource to the device for use bythe device.
 2. The method of claim 1, extracting the identifier of theprotected resource from a first key-identifier pair of the one or morekey-identifier pairs and retrieving the protected resource with theidentifier of the protected resource; and associating an expirationcondition with each of the one or more key-identifier pairs; generatinga use terms from the computer-readable instructions defining theauthorized context for the use request; maintaining an open transactionrecord of the use transaction and storing the one or more contextualvalues usable to determine the authorized context, the open transactionrecord associating the device with an active use of the protectedresource; and returning the use terms generated from thecomputer-readable instructions to the device, wherein a process of thedevice operable to monitor use of and enforce ephemerality of theprotected resource by maintaining a ledger comprising data identifyingthe protected resource that is in the active use by the device and acorresponding instance of the use terms associated with the authorizeduse of the protected resource.
 3. The method of claim 2, furthercomprising: processing a termination notice that at least one of: (i)the protected resource is no longer in the active use by the device,(ii) a network connection to the device is lost, and (iii) use of theprotected resource has been automatically terminated where the deviceperformed an action outside of the use terms.
 4. The method of claim 3,further comprising: receiving a policy update from a second user thatalters the computer-readable instructions of the use policy defining theauthorized context for use of the protected resource; determining theopen transaction record is associated with the protected resource andthe device; re-generating the use terms to an updated use terms based onat least one of the one or more contextual values stored and a new setof contextual values to form a new instance of the authorized context;and pushing the updated use terms generated from the policy update tothe device.
 5. The method of claim 3, wherein the termination noticeincluding a termination report specifying the action outside the useterms.
 6. The method of claim 3, further comprising: logging a result ofthe termination notice and closing the open transaction record; dividingdata of the protected resource into two or more segments and attaching asegment identifier to each of the one or more key-identifier pairs,wherein data of the protected resource transmitted to the device is afirst segment of the two or more segments, wherein the data of theprotected resource transmitted to the device includes a second use keyof the one or more use keys; and receiving a continued use requestautomatically generated by the device when the first segment of the dataof the protected resource approaches an end of a memory buffer of thedevice, the continued use request comprising the second use key of theone or more use keys.
 7. The method of claim 1, wherein the use requestcomprising a state dataset specifying a current state of the device, andwherein at least one of the one or more contextual values are calledfrom the state dataset specifying the current state of the device. 8.The method of claim 1, further comprising: conveying a redemption routeand a dynamic protocol designation with the at least one of the set ofone or more use keys returned to the device; and terminating a firstkey-identifier pair of the one or more key-identifier pairs afterstreaming the protected resource to the device irrespective of anexpiration condition.
 9. A computer-implemented method for authorizingand controlling use of a data resource, the method comprising: receivinga use request from a device to use a protected resource stored in a datanode of a non-hierarchical data structure within a datastore, extractingfrom at least one of the data node and a security node having areferential attribute pointing to the data node a use policy comprisingcomputer-readable instructions defining an authorized context for whichthe device can use the protected resource based on one or morecontextual values; initiating a use transaction that executes thecomputer-readable instructions of the use policy to gather the one ormore contextual values to determine whether the use request satisfiesthe authorized context for which the device can use the protectedresource; authorizing access to the protected resource by the devicewhen it is determined that each of the one or more contextual valuescalled by the use policy conforms to the authorized context for whichthe device may use the protected resource; generating a use terms fromthe computer-readable instructions defining the authorized context forthe use request; returning to the device the use terms generated fromthe computer-readable instructions; and streaming the protected resourceto the device, wherein the device comprising a process of the deviceoperable to monitor use of and enforce ephemerality of the protectedresource by maintaining a ledger comprising data identifying theprotected resource that is in an active use by the device and acorresponding instance of the use terms associated with the authorizeduse of the protected resource.
 10. The method of claim 9, furthercomprising: processing a termination notice that at least one of: (i)the protected resource is no longer in the active use by the device,(ii) a network connection to the device is lost, and (iii) use of theprotected resource has been automatically terminated where the deviceperformed an action outside of the use terms.
 11. The method of claim 9,wherein the use request comprising a state dataset specifying a currentstate of the device, and wherein at least one of the one or morecontextual values are extracted from the state dataset specifying thecurrent state of the device.
 12. The method of claim 9, furthercomprising: maintaining an open transaction record of the usetransaction and storing the one or more contextual values usable todetermine the authorized context, the open transaction recordassociating the device with the active use of the protected resource;receiving from a second user a policy update that alters thecomputer-readable instructions of the use policy defining the authorizedcontext for use of the protected resource; determining the opentransaction record is associated with the protected resource and thedevice; re-generating the use terms to an updated use terms based on atleast one of the one or more contextual values stored and a new set ofcontextual values form a new instance of the authorized context; andpushing the updated use terms generated from the policy update to thedevice.
 13. The method of claim 9, further comprising: generating a setof one or more use keys and appending an identifier of the protectedresource to each of the set of one or more use keys to form one or morekey-identifier pairs; associating an expiration condition with each ofthe one or more key-identifier pairs; returning a first use key of theset of one or more use keys to the device; receiving a redemptionrequest from the device comprising the first use key and verifying thefirst use key; extracting the identifier of the protected resource froma first key-identifier pair of the one or more key-identifier pairs andretrieving the protected resource with the identifier of the protectedresource; and terminating the first key-identifier pair after streamingthe protected resource to the device irrespective of the expirationcondition.
 14. The method of claim 13, further comprising: dividing dataof the protected resource into two or more segments and attaching asegment identifier to each of the one or more key-identifier pairs,wherein the data of the protected resource transmitted to the device isa first segment of the two or more segments, wherein the data of theprotected resource transmitted to the device includes a second use keyof the one or more use keys; and receiving a continued use requestautomatically generated by the device when the first segment of the dataof the protected resource approaches an end of a memory buffer of thedevice, the continued use request comprising the second use key of theone or more use keys.
 15. The method of claim 9, further comprising:logging a result of the termination notice and closing an opentransaction record of the use transaction and storing the one or morecontextual values usable to determine the authorized context, the opentransaction record associating the device with the active use of theprotected resource; conveying a redemption route and a dynamic protocoldesignation with the at least one of a set of one or more use keysreturned to the device, wherein the termination notice including atermination report specifying an action outside the use terms, andwherein the data node comprising an identifier whereby the data node isaddressable within the datastore.
 16. A system comprising: one or moredatastore servers comprising computer readable instructions that whenexecuted on one or more processors of the one or more datastore servers:store a data node comprising a protected resource, extract from the datanode a use policy comprising computer-readable instructions defining anauthorized context for which a device can use the protected resourcebased on one or more contextual values, and transmit the protectedresource to the device for use by the device upon receipt of anidentifier of the protected resource; a transaction engine comprisingcomputer readable instructions that when executed: initiate a usetransaction that executes the computer-readable instructions of the usepolicy to gather the one or more contextual values to determine whetherthe use request satisfies the authorized context for which the devicecan use the protected resource; a mediation server comprising computerreadable instructions that when executed on a processor of the mediationserver: process the one or more contextual values, authorize access tothe protected resource by the device when it is determined that the userequest based on the one or more contextual values gathered by the usepolicy conforms to the authorized context for which the device may usethe protected resource, and generate a use terms from thecomputer-readable instructions defining the authorized context for theuse request; and a network.
 17. The system of claim 16, furthercomprising: the device comprising computer readable instructions thatwhen executed on a processor of the device: generate a redemptionrequest comprising a first use key received by the device, and monitoruse of and enforce ephemerality of the protected resource by maintaininga ledger comprising data identifying the protected resource that is inan active use by the device and a corresponding instance of the useterms associated with the authorized use of the protected resource. 18.The system of claim 17, further comprising: the transaction enginefurther comprising computer readable instructions that when executed:maintain an open transaction record of the use transaction and store oneor more inputs usable to determine the authorized context, the opentransaction record associating the device with the active use of theprotected resource; and the mediation server further comprising computerreadable instructions that when executed on the processor of themediation server: return the use terms generated from thecomputer-readable instructions to the device.
 19. The system of claim18, further comprising: the mediation server further comprising computerreadable instructions that when executed on the mediation server:generate a set of one or more use keys and append the identifier of theprotected resource to each of the set of one or more use keys to formone or more key-identifier pairs, associate an expiration condition witheach of the one or more key-identifier pairs, and return the first usekey of the set of one or more use keys to the device; and a key servercomprising computer readable instructions that when executed on aprocessor of the key server: receive the redemption request of thedevice, and extract the identifier of the protected resource from afirst key-identifier pair of the one or more key-identifier pairs andretrieving the protected resource with the identifier of the protectedresource.
 20. The system of claim 19, further comprising: a profileserver comprising computer readable instructions that when executed on aprocessor of the profile server: receive an identity claim from thedevice comprising a device root hash computed by a hash function withinputs comprising a previous transaction record along with a penultimatehash of a hash history of the device, the hash history of the devicereferred to as a device hastory; and the transaction engine comprisingcomputer readable instructions that when executed on a processor of thetransaction engine: process a termination notice that at least one of:(i) the protected resource is no longer in the active use by the device,(ii) a network connection to the device over the network is lost, and(iii) use of the protected resource has been automatically terminatedwhere the device performed an action outside of the use terms.